使用MVVM分配数据上下文的最佳方法是什么?

时间:2011-05-02 04:58:52

标签: wpf mvvm

我一直在寻找设置数据上下文属性的最佳方法。我发现了三种方式

  1. 在View上分配数据上下文(在XAML或后面的代码上)。

  2. 通过构造函数在ViewModel上分配数据上下文。

  3. 使用一些配置来查看和查看模型引用,并通过一些基础结构类在运行时绑定数据上下文。

  4. 在松散耦合,可维护方面,哪个是最佳选择?或者有最好的方法吗?

2 个答案:

答案 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或者先使用视图我会选择一个等等...