WPF TabControl通过命令切换TabItem

6
我有一个WPF应用程序,在主窗口中我有一个TabControl。我希望TabItems在被选中时触发我在ViewModel中拥有的RelayCommand(每个TabItem都有不同的命令)。我不想为一些在命令CanExecute函数中设置的条件选择TabItem。这可行吗?

如果我理解正确,你需要做到以下两点:1、根据某些逻辑阻止选定某些TabItems(在这种情况下请参阅:https://dev59.com/FVPTa4cB1Zd3GeqPnOLU);2、当选定一个`TabItem`时执行某些操作(在这种情况下,我认为您可以简单地处理`SelectionChanged`事件)。 - Ramin
1个回答

4

我认为这里的正确做法不是使用'ICommand',而是使用一个ViewModel属性,该属性将双向绑定到TabControl.SelectedIndex(或SelectedItem),然后您可以在ViewModel中进行决策。这比为每个TabItem定义许多特定命令要好。

<TabControl SelectedIndex="{Binding VMSelectedTabIndex, Mode=TwoWay}">
//OR
<TabControl SelectedItem="{Binding VMSelectedItem, Mode=TwoWay}">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接