web-dev-qa-db-ja.com

XAMLで<Window.DataContext>を設定する

私は、プログラムの基礎として非常に単純なMVVMの例に従いました。著者は、DataContextを設定するためにメインページで使用した命令の背後にあるコードを1つ持っていました。代わりにXAMLでこれを実行できるはずだと思います。 MainWindowViewModelは、ViewModelsディレクトリにあります。動作するコード。

namespace RDLfromSP
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new ViewModels.MainWindowViewModel();
        }
    }
}

XAMLで設定する適切なコンボを見つけることができないようです

<Window x:Class="RDLfromSP.MainWindow"
        xmlns="http://schemas.Microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.Microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="300" Width="300" > 

    <Window.DataContext>
        <local:ViewModels.MainWindowViewModel />
    </Window.DataContext>

あなたの助けを事前にありがとう

25
David Beck

ViewModels名前空間へのxml名前空間マッピングが必要です。これを追加すると、次のようになります。

<Window.DataContext>
    <vms:MainWindowViewModel />
</Window.DataContext>

(これは、vmsを適切な名前空間にマップすることを前提としています。)

これは、local:の現在のネームスペースマッピングと同じように見えるはずですが、適切なネームスペースを指定してvms:を呼び出します。

72
Reed Copsey