Wpf - обновление ICollectionView приводит к сбою переопределения стиля
У меня есть стиль по умолчанию для пункта меню и стилей контекстного меню следующим образом:
<ResourceDictionary>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Background" Value="Blue"/>
<Setter Property="Foreground" Value="White" />
</Style>
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="Background" Value="LightBlue"/>
</Style>
</ResourceDictionary>
При отображении контекстного меню в элементе списка, привязанном к наблюдаемой коллекции, мне нужно переопределить стиль следующим образом:
<ListView.Resources>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="Black" />
</Style>
<Style TargetType="{x:Type ContextMenu}">
<Setter Property="Background" Value="WhiteSmoke"/>
</Style>
<ContextMenu x:Key="ItemContextMenu" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}, Path=ContMenu}"/>
</ListView.Resources>
<ListView.ItemContainerStyle>
<Style BasedOn="{StaticResource ListItemsStretched}" TargetType="{x:Type ListViewItem}">
<Setter Property="ContextMenu" Value="{StaticResource ItemContextMenu}"/>
</Style>
</ListView.ItemContainerStyle>
Это работает нормально, пока я не получу событие, которое я создал в связанной ObservableCollection, чтобы уведомить меня, когда какое-либо свойство изменилось, это используется, так что я могу обновить ICollectionView, что приведет к тому, что текущая сортировка списка будет оставаться истинной. Однако если контекстное меню открыто в представлении списка при возникновении этого события, оно возвращается к стилю по умолчанию, а не к стилю переопределения.
Любая помощь будет оценена по этому вопросу? Я подозреваю, что это что-то простое, что я пропускаю.