gpt4 book ai didi

c# - 访问 View 模型类中的选项卡控件

转载 作者:行者123 更新时间:2023-12-03 10:28:56 24 4
gpt4 key购买 nike

我有一个 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;

最佳答案

View 模型不应直接使用 Tab 控件。 MVVM 架构的全部目的是分离 UI 和业务逻辑。只有 View 才能访问 UI 中的控件,即使如此,由于数据绑定(bind)和 View 模型中的逻辑,这也很少需要。

为什么选项卡控件不由 View 模型管理?

此外, View 模型不应该知道任何关于 TreeViewItems 的信息——它应该对绑定(bind)到树中每个项目的模型类进行操作。

关于c# - 访问 View 模型类中的选项卡控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18059790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com