我有一個View Model
控制Tree View
。在我的GUI中還有一個Tab Control
,它不受View Model
的控制。如果我想使用Tree View
訪問Tab Control
的元素,我將如何給View Model
訪問它(Tab Control
)?訪問視圖模型中的選項卡控件類
我猜這將是沿着如何將從Tree View
從代碼隱藏到View Model
所選項目的方式。
代碼隱藏:
//Gets selected item in TreeView
private void Tree_One_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
MainWindowViewModel.SelectedItem = e.NewValue as TreeViewItem;
}
View Model
:
public static TreeViewItem SelectedItem { get; set; } //Selected Node\
我現在嘗試
代碼隱藏:
MainWindowViewModel.middleControl = tabControl1 as TabControl;
View Model
:
public static TabControl middleControl { get; set; }
下不起作用,因爲View Model
仍然沒有看到任何項目的Tab Control
if (parent_Node.Items.Contains(SelectedItem))
middleControl.SelectedIndex = nameOfTabItem;
,因爲我使用的設計窗口創建放物品就可以了'標籤control'不被'視圖model'管理。我認爲用模型創建這樣一個詳細的「選項卡控件」會困難得多。 –
@EricAfterDark關於如何處理MVVM中的TabControl,請參見[我的回答](http://stackoverflow.com/a/17954320/643085)。 –
@Ericafterdark使用MVVM的標籤控件比樹或列表控件更難,但可以完成。 HighCore的回答很好地描述了這個過程。 – Andy