2010-09-07 74 views
0

如何使用wpf中的數據控件創建n個製表符?WPF製表符控制使用與所有制表符相同的控件

假設主應用程序有一個名爲「新客戶」和「保存數據」的按鈕。當「新客戶」被按下時,出現一個新選項卡,其中包含兩個文本框「名稱」和「客戶編號」,等等。填充兩個字段後,按「保存數據」應將關注選項卡中的信息存儲到數據庫中。

我遇到的問題是,我爲「名稱」和「客戶編號」文本框的名稱爲x:Name =「CustomerName」和x:Name =「CustomerNumber」。我發現你不能複製這些。

有人可以建議我如何解決這個問題嗎?先謝謝你!

回答

0

使用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,還有許多其他信息可供閱讀。

+0

謝謝本。我會仔細閱讀。 – foureight84 2010-09-07 22:39:16

+0

如果我不採用MVVM設計路線,是否有其他方法可以執行此操作? – foureight84 2010-09-08 23:00:39

+0

您仍然可以將您的TabControl ItemsSource綁定到UserControls的ObservableCollection,在您的代碼中,當用戶單擊New Customer時,創建NewCustomerUserControl的新實例並將其添加到集合中 – benPearce 2010-09-09 00:59:53