Дочерние расширители, вызывающие развернутые и свернутые события родительского расширителя?

По какой-то причине дочерние Expander (помещенные в StackPanel внутри другого Expander ) при свертывании или раскрытии заставляют родительский Expander поднимать его Expanel или Свернутые события.

Кто-нибудь знает, почему это так или как я могу это изменить? Меня интересуют только родительские события.

Вот тестовый XAML:

    
        
            
                
            
            
                
            
        
    

и код программной части:

    private void Expander_Expanded(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("expanded");
    }

    private void Expander_Collapsed(object sender, RoutedEventArgs e)
    {
        MessageBox.Show("collapsed");
    }

Когда вы запускаете это, если вы расширяете родительский элемент, вы получаете «расширенный» окно сообщения, как и следовало ожидать. Но когда вы затем расширяете один из дочерних элементов, вы снова получаете сообщение.

В документации для события Expanded говорится:

Событие Expanded происходит, когда свойство IsExpanded изменяется с false на true

Но очевидно, что свойство IsExpanded не является t изменяется в родительском Expander.

Почему это происходит, есть идеи?

6
задан H.B. 18 May 2011 в 15:10
поделиться