У меня есть стиль Appication уровня для ComboBoxItem
:Как удалить привязку, определенную в стиле приложения?
<Style TargetType="{x:Type ComboBoxItem}" x:Key="DefaultComboBoxItemStyle">
<!-- ... -->
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
<!-- ... -->
</Style>
<Style TargetType="{x:Type ComboBoxItem}" BasedOn="{StaticResource DefaultComboBoxItemStyle}" />
Этот стиль подходит для меня в 99% случаев. Но, есть 1%, когда связанные объекты не имеют свойства IsSelected
. Я хочу переопределить эту привязку (в частности, полностью ее очистить).
Я думал, что это будет возможно так:
<!-- somewhere in application code -->
<ComboBox Margin="5" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
<ComboBox.ItemContainerStyle>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource DefaultComboBoxItemStyle}">
<Setter Property="IsSelected" Value="False"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
Но это не работает, ошибки связывания все еще присутствует. Есть ли способ достичь того, что я хочу в XAML?
Спасибо, я попробую чуть позже. Но тогда возникает следующий вопрос: почему стиль из ресурсов должен заменить стиль приложения, но напрямую установить стиль не делает этого? – Dennis
По-видимому, стиль по умолчанию всегда применяется независимо от того, что другой стиль установлен позже, когда ComboBox создал новый экземпляр ComboBoxItem и применяет свой «ItemContainerStyle». – Clemens
Отлично, это работает для меня. Еще раз спасибо! – Dennis