2

ビューをビューモデルにバインドする場合は、XAML コードのリソースに次を追加します。

<Window.Resources>
    <DataTemplate DataType="{x:Type MyViewModel}" >
        <views:MyView />
    </DataTemplate>
</Window.Resources> 

(viewmodel,view)-resource-entry を C# コードのリソース辞書に追加する可能性はありますか?

次の 2 行はキーを作成し、辞書に追加します。

DataTemplateKey key = new DataTemplateKey(typeof(MyViewModel));
View.WindowName.Resources.Add(key, value);

MyViewしかし、タイプが必要な から値を作成するにはどうすればよいSystem.Windows.Baml2006.KeyRecordですか?

4

1 に答える 1

1

これは、c# コードで datatepmlate を作成する方法のサンプルです。

ps: 質問のタイトルは、C# コードでデータ テンプレートを作成する方法のようなものにする必要があります。これはmvvmとは何の関係もありません。もちろん、このコードはビューモデルに入るべきではありません;)

編集:

DataTemplate temp = new DataTemplate();
temp.DataType = typeof (MyViewModel);

FrameworkElementFactory fac = new FrameworkElementFactory(typeof(MyView));

temp.VisualTree = fac;

View.WindowName.Resources.Add(new DataTemplateKey(typeof(MyViewModel)), temp );

xamlの方がはるかに簡単です:)

于 2012-05-02T10:55:50.957 に答える