如果我想将 View 绑定(bind)到 View 模型,我将以下内容添加到我的 XAML 代码的资源中:
<Window.Resources>
<DataTemplate DataType="{x:Type MyViewModel}" >
<views:MyView />
</DataTemplate>
</Window.Resources>
是否有可能将 (viewmodel,view)-resource-entry 添加到我在 C# 代码中的资源字典中?
以下两行创建 key 并将其添加到字典中:
DataTemplateKey key = new DataTemplateKey(typeof(MyViewModel));
View.WindowName.Resources.Add(key, value);
但是我如何从 MyView
创建值,它必须具有 System.Windows.Baml2006.KeyRecord
类型?
最佳答案
here是关于如何使用 C# 代码创建数据模板的示例。
ps:您的问题标题应该类似于如何使用 C# 代码创建数据模板。顺便说一句,这与 mvvm 无关。更重要的是,这段代码当然不应该进入 View 模型;)
编辑:
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 中更容易 :)
关于c# - 如何在 C# 中使用 XAML 和 WPF 在 MVVM 环境中将 View 绑定(bind)到 Viewmodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10411657/