WPF中使用的设计模式

时间:2011-06-22 14:00:31

标签: wpf design-patterns

以下是MVVM上的this article的excrept。有人可以举例说明如何在WPF中使用这些其他模式(命令,DI)吗? WPF中使用的其他设计模式是否在此处未列出?

  

您应该了解其他模式以帮助您使用MVVM。像命令(加入WPF,SL解决方案),中介和喘气依赖注入等模式。 。

3 个答案:

答案 0 :(得分:25)

我写过关于其中一些内容的文章:WPF and Silverlight design patterns

以下是模式的简要说明:

1) MVVM - 用作模型转换器并替代代码隐藏。提高了可测试性,为ViewModel编写单元测试要容易得多。

2)依赖注入 - 用于提高类的可测试性(您可以将特定类的单元测试与其他类别分开编写)以及更轻松地更改实现的可能性(更改记录器) ,缓存提供商,网络服务等)

3)命令 - 默认情况下可以应用于Button和MenuItem控件,如果无法执行操作,则禁用控件。也用于MVVM模式,作为代码隐藏事件的替代。

经典书籍中已经在WPF中使用的其他模式:

  • 单件。 WPF中的Application类和HttpContext类 在网络表格中。
  • 适配器。数据绑定引擎,它使用IValueConverter 用于转换UI的绑定值的接口。
  • 装饰。 Border类,它装饰任何UIElement类 具有可变厚度和颜色的边框。
  • 外墙。 PrintDialog类,提供简单的界面 这使您可以使用整个打印和文档子系统 WPF提供的。
  • 命令。 ICommand接口,由。实现 RoutedCommand和RoutedUICommand类。
  • 迭代器。 IEnumerator接口,其中包含许多集合和列表 在.NET Framework实现中。
  • 观察。 INotifyPropertyChanged接口和事件。

答案 1 :(得分:1)

Setter依赖注入:

使用MVVM时,您必须将ViewModel实例注入View中,方法是将其设置为view.DataContext属性:

var viewModel = new CustomViewModel();
var view = new CustomView();
view.DataContext = viewModel;

答案 2 :(得分:1)

数据绑定(在View和ViewModel之间)使用Observer模式。另外:Factory模式可用于实例化ViewModel,但这是可选的。