program study story

プログラムの勉強 アウトプット

WPF_C#_Xaml_基礎_DataContextを設定する方法

WPF:DataContextを設定する方法

■プロパティに設定する方法

・csファイルのコンストラクタにおいて、DataContextプロパティを直接設定する方法。

ViewModelを生成するだけでなく、初期設定等を行う場合

XAMLにDataContextを記載しないので、XAML上でDataContextに何が設定されているかあらかじめ知っている必要があることになる。

MainView.xaml.cs

namespace WpfApplication.View
{
    using System.Windows;
 
    public partial class MainView : Window
    {
        public MainView()
        {
            this.InitializeComponent();
            this.DataContext = new WpfApplication.ViewModel.MainViewModel();
        }
    }
}

 

XAMLに記載する方法

XAML上で設定する方法。

初期化時にあれこれはできないが、XAMLとコードがキレイに分離できている。

MainView.xaml

<Window x:Class="WpfApplication.View.MainView"
        xmlns:local="clr-namespace:WpfApplication.ViewModel"
        Title="MainWindow" Height="125" Width="210">
    <Window.DataContext>
        <local:MainViewModel />
    </Window.DataContext>
    <Grid>
    </Grid>
</Window>
 
1.Windowsタグ内にDataContextで使用するクラスのネームスペースを定義する。
<Window
    xmlns:local="clr-namespace:ここにネームスペース"
>
</Window>
2.Windowsタグ内のxmlns:local="clr-namespace:ここにネームスペース"のnamespaceに含まれるクラスはビルドしておく。
 
3.Windows.DataContextタグ内にDataContextのクラスを指定する。
<Window
    xmlns:vm="clr-namespace:ここにネームスペース"
>
    <Window.DataContext>
        <local:ここにクラス名 />
    </Window.DataContext>
</Window>