我一直在寻找设置数据上下文属性的最佳方法。我发现了三种方式
在View上分配数据上下文(在XAML或后面的代码上)。
通过构造函数在ViewModel上分配数据上下文。
使用一些配置来查看和查看模型引用,并通过一些基础结构类在运行时绑定数据上下文。
在松散耦合,可维护方面,哪个是最佳选择?或者有最好的方法吗?
答案 0 :(得分:1)
我个人喜欢this approach因为它让我必须编写更少的代码:)。当wpf控件需要在视觉上呈现IValueConverter
并且ViewModel
为您设置datacontext时,它基本上使用IValueConverter
来查找要使用的视图。它还向您展示了如何创建一个datatemplate,允许您在默认情况下要求WPF使用此转换器,如下所示:
<DataTemplate DataType="{x:Type ViewModels:ViewModelBase}">
<ContentControl Content="{Binding Converter={StaticResource MyConverter}}"/>
</DataTemplate>
答案 1 :(得分:0)
4.方式将是DataTemplate。
我认为最好的方法是在当前情况下最适合的方法。
如果我有viewmodel第一个动态场景我使用datatemplate / contentpresenter或者先使用视图我会选择一个等等...