在我的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>
答案 0 :(得分:1)
无法重现这一点,这将是我在Silverlight中所期望的错误,而不是WPF。在SL中,您无法使用Setter创建绑定。
答案 1 :(得分:0)
我尝试在一个新的,干净的空项目中重现这个,如果.NET Framework版本是3.5,则仍会出现错误。但是,如果我将.NET Framework版本更改为4,则错误消失。这可能是.NET 3.5中的一个错误。