SelectionChanged也触发嵌套控件?

问题描述:

对不起,误导性的标题,我会尽力解释更好。 我有这样一个TabControl:SelectionChanged也触发嵌套控件?

<dragablz:TabablzControl SelectionChanged="MainTabs_SelectionChanged" x:Name="MainTabs"> 

那里里面我有不同的TabItems,我需要火每次事件MainTabs_SelectionChanged用户改变TabItem,这工作,但这个事件也发射时的选择在tabitem中可用的组合框,改变。

这是ComboBox

<ComboBox Grid.Column="1" Grid.Row="1" ItemsSource="{Binding Groups}" 
               Margin="8,0,8,16" DisplayMemberPath="Name" SelectedItem="{Binding SelectedGroup}" /> 

为什么会发生呢?

为什么会发生这种情况?

因为SelectionChanged路由事件。

路由事件概述:https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/routed-events-overview

您可以使用OriginalSource属性来确定是否选择一个选项卡:

private void MainTabs_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
    if (e.OriginalSource == MainTabs) 
    { 
     //do your thing 
    } 
}