WPF自定义控件设计模式。 MVVM?

时间:2010-08-16 07:18:49

标签: c# design-patterns wpf-controls

我在WPF中创建自定义控件,它是我从Control类型派生的股票代码的高度非原创示例。我的问题是:控件本身是否有任何推荐的设计模式(与应用程序相对)?我在整个应用程序中使用MVVM,但是如果使用控件本身的这种设计模式是好的或坏的做法就会徘徊。

我考虑使用MVVM进行控制的原因是:

  • 这是一个相对复杂的控件,因为它具有图形能力和Midprice,Average等的依赖属性等。
  • 将ViewMOdel作为其中的一部分,可以使单元测试变得更容易(甚至可能)
  • 使整个编码过程更容易,特别是因为我有一个定制的ObservableCollection点类型。

任何关于此事的想法都会很棒。我只是不知道这是不是好习惯。

非常感谢

2 个答案:

答案 0 :(得分:2)

1)未来可扩展性 - 我想说的是控制开发的核心。
2)良好的API设计 - 创建与概念证明一样多。
3)出现模式 - 如果真的是大控制。与MVVM一起使用是件好事。但是,也要学会妥协。有时候,我们会觉得组件开发时严格遵守MVVM会使控件变得非常复杂 4)避免过度暴露属性 - 在需要时添加属性。 [如果房产过度暴露,控制感觉就像滥用一样。 ;)]
5)使控件看起来像。请参阅L for Lookless

常规
尝试从开始使控件可混合。这将有助于您了解从开始有多好和可用。最重要的是,它提供了很多的满足感,并且易于跟踪控制的完整性。

在选择特定功能时,请从两个方面思考:
1)控制的可用性和
2)控制的完整性。

答案 1 :(得分:0)

如果控件本身是自包含的并且足够复杂而不能单独调用视图,那么我会像你建议的那样为控件本身创建一个单独的视图模型。否则,我只是让它存在于它托管的视图中。