2011-03-09 46 views
0

作爲WPF的新來者,我想澄清一下我在WPF中構建UI的方法。我正在使用MVVM和MVVM。我的方法是使用一個包含用戶控件的主窗口,該用戶控件可以在UI樹中運行幾個級別。例如,我在窗口中有一位編輯。許多項目可以在編輯器中編輯,每個項目的用戶界面都不同,但編輯器始終顯示「確定」和「取消」按鈕。所以OK和Cancel的主編輯器窗口可以在幾個編輯器之間共享。我以這樣的方式設計應用程序,即編輯器用戶控件只會綁定編輯項目的視圖模型。所以當設計用於編輯單個項目的用戶界面時,確定或取消按鈕沒有拉入,只需將該項目放入主編輯器中,該編輯器將提供按鈕。我很確定我可以使用WPF命令基礎結構正確處理這些命令。WPF用戶控件的UI設計

如果我可以用xaml在這裏清楚它是。請不要介意控件佈局本身,我的意思是解釋共享許多項目的通用用戶界面的基本思想。

<UserControl Name="EditorMainWindow"> 
<Grid> 
    <StackPanel> 
     <ItemsControl ItemsSource="{Binding ItemToBeEdited}">     
     </ItemsControl> 
     <Button Content="OK" Width="120" Command="{Binding SomethingforOK}" /> 
     <Button Content="Cancel" Width="120" Command="{Binding SomethingforCancel}"/>   
    </StackPanel>    
</Grid> 
</UserControl>  

我這樣做的方式,用戶界面樹可以深入幾個級別。我會受益匪淺,因爲如果客戶要求在一個特定的地方更換用戶界面,我不需要在許多地方修改它(只要它是共享的)。

由於我是WPF的新手,我想知道這種方法是否有任何問題。你能告訴我這是否合理嗎?

回答

1

你可以節省很多時間。 Catel已經提供了這樣的窗口:

DataWindow

它是完全準備好MVVM(Catel也是MVVM框架),其支持動態嵌套用戶控件。好的是,它也支持開箱即用的錯誤處理,所以只要窗口模板發生錯誤,用戶就會在InfoBarMessageControl中看到錯誤。

+0

謝謝。但是,由於應用程序已經存在一段時間,所以我對使用框架有點猶豫。恭喜,卡特爾看上去不錯。 – Jimmy 2011-03-09 13:15:42

+0

你不必使用整個框架,你可以使用它的一些想法(因爲我們已經走過了很多問題)。 祝你好運,修復應用程序,這是一個真正的好主意,創建基本模板(爲什麼不微軟拿出這個基本的東西?)。 – 2011-03-09 14:41:08

+0

點。看着凱特爾。再次感謝你。 – Jimmy 2011-03-09 16:41:53