使用MVVM:
有一個觀點和一個新客戶一個ViewModel,對視圖中的保存按鈕,執行代碼給客戶保存到數據庫。此代碼應存在於客戶模型或客戶服務中。
NewCustomerView不需要具有與其控件關聯的名稱,因爲您將它們的Text屬性綁定到ViewModel或基礎模型上的屬性,除非您必須引用它們以外的其他目的而不是從數據獲取數據每一個。
在主窗體上,您將擁有選項卡控件,其項目源設置爲MainWindowViewModel上的ObservableCollection。按下New Customer按鈕將填入此ObservableCollection的新條目。
在MainWindowView你會把該NewCustomerViewModel映射到NewCustomerView,如數據模板:
<DataTemplate DataType="{x:Type vm:NewCustomerViewModel}">
<AdornerDecorator>
<views:NewCustomerView DataContext="{Binding}"/>
</AdornerDecorator>
</DataTemplate>
這基本上是說當內容是NewCustomerViewModel,呈現NewCustomerView。
你應該去看看MVVM,因爲這將解決你的命名問題,以及更好的體系結構應用程序。
請參閱MVVM上的Josh Smiths article,還有許多其他信息可供閱讀。
謝謝本。我會仔細閱讀。 – foureight84 2010-09-07 22:39:16
如果我不採用MVVM設計路線,是否有其他方法可以執行此操作? – foureight84 2010-09-08 23:00:39
您仍然可以將您的TabControl ItemsSource綁定到UserControls的ObservableCollection,在您的代碼中,當用戶單擊New Customer時,創建NewCustomerUserControl的新實例並將其添加到集合中 – benPearce 2010-09-09 00:59:53