В своем ListBox я хотел привязать свойство IsSelected каждого элемента к моей ViewModel, и сделал это успешно. Затем я хотел сделать выбранные элементы более заметными, когда они не имеют фокусировки на клавиатуре, и этот ответ сказал мне, как это сделать. Любая из этих функций работает, но при их объединении при запуске возникает следующее исключение:
XamlParseException : Невозможно установить «Связывание» в свойстве «Значение» типа «Сеттер». «Связывание» может быть установлено только для свойства DependencyObject объекта Dependency.
Вот мой XAML:
<ListBox x:Name="objectList" ItemsSource="{Binding FilteredList}" SelectionMode="Extended">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Resources>
<!--Make unfocused selected items more visible-->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="LightBlue" Opacity=".5"/>
</Style.Resources>
<!-- Support multiselect-->
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>