数据模板 + MVVM
我正在使用 MVVM,每个视图都映射到具有约定的 ViewModel。 IE MyApp.Views.MainWindowView MyApp.ViewModels.MainWindowViewModel
有没有办法删除 DataTemplate 并在 C# 中执行它?有某种循环?
<DataTemplate DataType="{x:Type vm:MainWindowViewModel}">
<vw:MainWindowView />
</DataTemplate>
I'm using MVVM and each View maps to a ViewModel with a convention. IE
MyApp.Views.MainWindowView
MyApp.ViewModels.MainWindowViewModel
Is there a way to remove the DataTemplate and do it in C#? with some sort of loop?
<DataTemplate DataType="{x:Type vm:MainWindowViewModel}">
<vw:MainWindowView />
</DataTemplate>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
所以基本上,您需要以编程方式创建数据模板...这不是很简单,但我认为您可以使用
FrameworkElementFactory
类来实现:我没有测试它,所以可能需要进行一些调整必要...例如,我不确定资源键的类型应该是什么,因为它通常是在 XAML 中设置 DataType 时隐式设置的
So basically, you need to create data templates programmatically... That's not very straightforward, but I think you can achieve that with the
FrameworkElementFactory
class :I didn't test it, so a few adjustments might be necessary... For instance I'm not sure what the type of the resource key should be, since it is usually set implicitly when you set the DataType in XAML
谢谢托马斯,使用你的代码我已经做到了这一点。
添加资源时需要使用 DataTemplateKey :D
Thanks Thomas, using your code i've done this.
You need to use the DataTemplateKey when adding the resoures :D