我想捕获TabItem选择更改事件,即仅当用户更改选项卡时才调用ViewModel命令。我现在有了这个,成功调用了命令,但选择更改是沿着可视化树的隧道,因此更改的选择被捕获到整个选项卡项,而不仅仅是当用户更改选项卡时。有没有办法将触发器限制为只有标签更改?:
<TabControl Margin="10">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding CollapsedExpanderCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<TabItem Header="Account" >
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
答案 0 :(得分:1)
如果您正在使用MVVM,为什么不使用SelectedItem依赖项属性并在ViewModel中绑定属性,例如:
<TabControl ItemsSource="{Binding Path=Items, Mode=OneWay}"
SelectedItem="{Binding Path=SelectedItem, Mode=TwoWay}">
</TabControl>
答案 1 :(得分:0)
使用绑定到PreviewMouseLeftButtonDown
viewModel TabItem
的{{1}}上的ICommand in my
事件触发器来解决此问题
: