SelectionChanged也在嵌套控件上触发?

时间:2017-10-13 09:58:58

标签: c# wpf xaml

对于误导性的标题感到抱歉,我会尝试更好地解释。 我是这样的TabControl:

<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}" />

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:1)

  

为什么会发生这种情况?

因为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
    }
}