我正在为我的IDE开发一些功能,点击一些treeviewitem,将更改当前显示的选项卡。我想这样做,但没有运气。我究竟做错了什么? 如何设置所需的标签以进行聚焦?
以下是代码:
void tr_ViewOtherClass(object sender, MouseButtonEventArgs e)
{
string tagToView = ((TreeViewItem) sender).Tag.ToString();
TabItem currentTab = ((TabItem) (tabControl.SelectedItem));
if (tagToView != currentTab.Tag.ToString())
{
TabItem tabToView = null;
for (int i = 0; i < tabControl.Items.Count; i++)
{
tabToView = ((TabItem) (tabControl.Items[i]));
if (tabToView.Tag.ToString() == tagToView)
break;
}
classCodes[currentTab.Tag.ToString()] = ((TextEditor) currentTab.Content).Text;
currentTab = tabToView;
}
}
答案 0 :(得分:1)
为currentTab
变量指定值时,不会修改tabControl.SelectedItem
。
如果要更改其值,则必须直接指定tabControl.SelectedItem
; currentTab
等效于指针,修改其值只会修改局部变量指向的值。
答案 1 :(得分:0)
TabItem currentTab
和
TabItem tabToView
每个都只是局部变量
如果要将更改推送到UI,则需要使用带有通知的tabControl SelectedItem绑定。
TabControl在MVVM中的行为有所不同
我给了非MVVM方式。
MVVM可能是一个更好的方法。