[WPF]XAMLのDataContextを設定する方法

XAML内でDataContextに使用したいクラスを指定する方法の解説とサンプルコードです。

DataContextを設定する方法

  1. Windowsタグ内にDataContextで使用するクラスのネームスペースを定義します。

    <Window
        xmlns:vm="clr-namespace:ここにネームスペース"
    >
    </Window>
    
  2. Windows.DataContextタグ内にDataContextのクラスを指定します。

    <Window
        xmlns:vm="clr-namespace:ここにネームスペース"
    >
        <Window.DataContext>
            <vm:ここにクラス名 />
        </Window.DataContext>
    </Window>
    

    ※ 「xmlns:vm」と「<vm:ここにクラス名 />」のvmは一致していれば変更可能です。

サンプル

次のサンプルでは、クラス「WpfApplication.ViewModel.LoginViewModel」をデータコンテキストに指定しています。

XAML

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApplication"
        xmlns:Common="clr-namespace:Common;assembly=Common" x:Class="WpfApplication.MainWindow"
        xmlns:vm="clr-namespace:WpfApplication.ViewModel"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525"
    >

    <!--データコンテキスト定義-->
    <Window.DataContext>
        <vm:LoginViewModel />
    </Window.DataContext>

    <Grid>
    </Grid>
</Window>

注意

プロジェクト内に対象となるネームスペースとクラスが無いとコンパイルエラーが発生します。

検証環境

関連ページ