我設計一個WPF應用程序,並具有以下的ViewModels:WPF的ViewModels和綁定
- ProjectViewModel(包含GroupViewModels的一個ObservableCollection)
- GroupViewModel(包含ItemViewModels的一個ObservableCollection)
- ItemViewModel
我打算用一個包含多個Tabs
包含一Window
表示此。
下面是它如何看:
在我MainWindow.xaml
:
<Window.DataContext>
<viewModel:ProjectViewModel/>
</Window.DataContext>
我打算結合視圖模型查看UI元素如下:
- ProjectViewModel - >(綁定到)窗口
- GroupViewModel - >(綁定)的TabItem
- ItemViewModel - >(綁定)一些自定義的控制,只是顯示爲彩色矩形現在
這是我想不通的問題.. 。
的標籤,需要是動態的(可以被添加/由用戶刪除)。
爲了做到這一點,我也跟着上CodeProject.com教程:Add/Remove Tabs Dynamically in WPF。
在此代碼,TabControl.DataContext
被設置爲的TabItems的列表,其具有項添加/移除基於用戶動作。
但是,如果我綁定TabControl.DataContext到的TabItems的名單,就不會失去我將它綁定到我的GroupViewModel的能力嗎?
有沒有辦法將它綁定到兩者?
繼MVVM模式,不是的UIElement的的DataContext應該被綁定到視圖模型,而不是其他的UIElement。
有沒有一種方法可以將我的ViewModels綁定到我的View UIElements,就像我之前計劃的那樣,仍然可以執行動態選項卡?
非常感謝您的任何想法或建議。
菲利普
爲了讓我使用這段代碼,我需要讓我的'GroupViewModel'擴展'System.Windows.Controls.TabItem'嗎?「TabControl」的項目不需要是「TabItem」嗎? –