По какой-то причине дочерние 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.
Почему это происходит, есть идеи?