0

我正在为我的 IDE 开发一些功能,单击一些树视图项,将更改当前显示的选项卡。我正在尝试这样做,但没有运气。我究竟做错了什么?如何将所需的选项卡设置为焦点?

这是代码:

        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;
            }
        }
4

2 回答 2

1

当您为currentTab变量赋值时,它不会修改tabControl.SelectedItem.

tabControl.SelectedItem如果你想改变它的值,你必须直接赋值;currentTab相当于一个指针,修改它的值只会修改局部变量所指向的值。

于 2012-12-17T20:53:15.637 回答
0

TabItem currentTab

TabItem tabToView
都只是局部变量。
如果要将更改推送到 UI,则需要将 tabControl SelectedItem 与通知绑定两种方式。

TabControl 在 MVVM 中的行为不同。
我给出了非 MVVM 方式。
MVVM 可能是一个更好的方法。

于 2012-12-17T20:13:46.287 回答