为什么我不能组合这两个ListBox功能?

时间:2011-07-04 20:40:18

标签: .net wpf xaml xamlparseexception

在我的ListBox中,我想将每个项目的IsSelected属性绑定到我的ViewModel,并且成功完成了。然后我想让选定的项目在没有键盘焦点时更加醒目,this answer告诉我如何操作。两个功能单独工作,但组合它们会在启动时导致以下异常:

XamlParseException :无法在“Setter”类型的“Value”属性上设置“绑定”。 '绑定'只能在DependencyObject的DependencyProperty上设置。

这是我的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 个答案:

答案 0 :(得分:1)

无法重现这一点,这将是我在Silverlight中所期望的错误,而不是WPF。在SL中,您无法使用Setter创建绑定。

答案 1 :(得分:0)

我尝试在一个新的,干净的空项目中重现这个,如果.NET Framework版本是3.5,则仍会出现错误。但是,如果我将.NET Framework版本更改为4,则错误消失。这可能是.NET 3.5中的一个错误。