2011-07-02 32 views
0

我有道德問題:) 我在WPF中創建自己的控件(派生UserControl)。現在有兩種方式:在WPF中創建自己的UserControl的正確方法(Csharp)

  1. 我使用一個XAML和一個CS文件,有沒有我的東西都
  2. 我忠於MVVM和創建一個XAML和CS文件的用戶控件加一個CS文件因爲它的View Model和我正在使用MVVM技術。 然後,我必須用我的控制是這樣的: 在XAML:

    <ContentControl Content={Binding MyControl.... 
    

    在代碼:

    MyControl = new MyControlViewModel() 
    

直到現在我用第二種方法,但現在我讀了一些明智的文章,它似乎很多人使用第一。 所以我應該在創建控件的同時混合視圖和邏輯?當然,我將MVVM保留在應用程序的其他部分(我試圖將所有邏輯材料保留在視圖模型中)。 Couse恐怕我的cs文件太長了。

回答

1

我的觀點是,根據經驗,任何需要顯式虛擬機的東西不僅僅是一個控件,它已經是一種組件。這些控件應該相當簡單,並且沒有高級業務邏輯。如果你看到你的代碼需要一個虛擬機,你可以說你已經寫了一個組件,所以爲它創建一個單獨的虛擬機類沒有問題。

+0

謝謝弗拉德那個答案。我現在意識到我不想創建新的控件:)請檢查我的新帖子:http://stackoverflow.com/questions/6557193/right-way-to-put-few-usercontrol-components-on- a-window –

+0

不客氣!對於你的新問題,我第二個Tendlon的答案是:使用「小型」虛擬機作爲菜單和主要內容,並將它們放到主窗口的虛擬機中。對於沒有插件的小型應用程序來說,使用Prism似乎是一個過分的矯飾。 – Vlad

+0

應該標記爲答案。 –