2010-08-16 69 views
3

我在WPF中創建一個自定義控件,它是我從控件類型派生的股票代碼的非常原始的示例。我的問題是:是否有任何推薦的控件設計模式(而不是應用程序)?我爲整個應用程序使用MVVM,但只是在控制本身使用這種設計模式是好的或不好的做法。WPF自定義控件設計模式。 MVVM?

我使用MVVM的控制思維的原因是:

  • 這是一個比較複雜的控制,因爲它有一個圖形能力和中等價位的依賴項屬性,平均等等等等
  • 要作爲其一部分的ViewMOdel將使單元測試更容易(甚至可能)
  • 使整個編碼過程更加簡單,特別是因爲我有一個定製的ObservableCollection點類型。

任何關於此事的想法都會很棒。我只是不知道這是否是好的做法。

非常感謝

回答

0

如果控制本身是自包含的,足夠複雜到自身被稱爲看法,我會去與控件本身創建一個獨立的視圖模型,就像你建議的方法。否則,我只是讓它住在它所託管的視圖中。

2

1)未來的可擴展性 - 我想說的是控制開發的核心。
2)良好的API設計 - 創建儘可能多的概念證明。
3)來模式 - 如果它真的是很大的控制。使用MVVM很好。但是,學會妥協。有時候,我們會在組件開發時感受到嚴格遵守MVVM會使控件非常複雜。
4)避免過度暴露屬性 - 根據需要添加屬性。 [控制感覺它像一個濫用,如果屬性過度暴露。 ;)]
5)使控制無視。請參閱L for Lookless

一般:
儘量使控制從開始共混。它會幫助你認識到從出發開始有多好,有用。最重要的是,它提供了很多滿足和易於追蹤控制的完整性。

當談到選擇一個特定的特徵,認爲在兩個方面:
1)控制的可用性和
2)控制的完整性。