使用MVVM的通用用户控件的替代方案

时间:2012-09-05 12:10:11

标签: wpf generics design-patterns mvvm user-controls

  

可能重复:
  How to define the usercontrols in mvvm pattern?

我正在尝试使用MVVM编写我的第一个WPF应用程序。我创建了一个用户控件,由2个部分组成,DataGrid和详细视图(显示DataGrid中所选行的详细信息)。此控件假设加载并显示不同的数据模型(如客户,产品等)但由于似乎无法使用通用用户控件,我发现我的用户控件无用。坦率地说,我开始认为MVVM模式中的任何用户控件都是无用的。在我的视图中,是否有任何替代方法可以防止对DataGrid和详细视图进行不必要的复制/粘贴? thx提前

1 个答案:

答案 0 :(得分:1)

首先, 可以使用通用用户控件。但除此之外,它可能不是你想要的。

您需要做的是创建一个可以重复使用的用户控件。有几种选择:

  1. 创建基本用户控件并允许从该
  2. 派生视图
  3. 根据当前视图模型创建一个自我组合的视图(推荐)
  4. 要为特定用户控件创建视图模型(包括延迟加载视图模型),可以使用Catel。有关详细信息,请参阅this documentation

    免责声明:我是Catel的开发者之一,但如果其他人知道其他方式,我很高兴听到他们的说法。