2

如果我想将视图绑定到视图模型,我将以下内容添加到我的 XAML 代码的资源中:

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

是否有可能在 C#-Code 中将 (viewmodel,view)-resource-entry 添加到我的资源字典中?

以下两行创建密钥并将其添加到字典中:

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

但是我怎样才能从MyViewwhich must have type 中创建值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 回答