Почему я не могу объединить эти две функции ListBox? - PullRequest
1 голос
/ 05 июля 2011

В своем 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>

Ответы [ 2 ]

1 голос
/ 05 июля 2011

Невозможно воспроизвести это, это было бы ошибкой, которую я ожидал бы в Silverlight, но не в WPF. В SL вы не можете создавать привязки с помощью Setters.

0 голосов
/ 23 ноября 2011

Я попытался воспроизвести это в новом, чистом, пустом проекте, и ошибка все еще происходит ... если версия .NET Framework 3.5. Однако если я изменю версию .NET Framework на 4, ошибка исчезнет. Это, вероятно, ошибка в .NET 3.5.

...