0

我正在使用MVVM 模式Silverlight 4将 TODO 项的集合绑定到 ListBox。

IsSelected每个TODO实体都有一个属性。这允许在绑定回 ViewModel 的 UI 中进行多项选择。同时,ViewModel 所做的任何更改都会反映在 View 中。

我基本上是在尝试做这个答案中建议的事情

不幸的是,在 Silverlight(与 WPF 相对)中,我找不到使用模板执行此操作的方法,因为SL4不支持样式设置器中的绑定。

<ListBox.ItemContainerStyle>
    <Style TargetType="{x:Type ListBoxItem}">
        <Setter Property="IsSelected" 
                Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
    </Style>
</ListBox.ItemContainerStyle>

然而,与任何其他方法不同 - 这似乎是选定项目列表的双向绑定最可靠的方法。

如何在代码隐藏或 XAML 中表达此绑定?

4

1 回答 1

3

我知道的最简单的方法是重载 DataTemplate 并使其看起来像 ListBoxItem 选择。我使用 Blend 4.0 Silverlight SDK 中的 DataStateBehavior 将 IsSelected 属性与正确的外观和感觉联系起来。

<i:Interaction.Behaviors>
    <ei:DataStateBehavior Binding="{Binding IsSelected, Mode=TwoWay}" Value="True" TrueState="Selected" FalseState="Unselected"/>                   
</i:Interaction.Behaviors>

我没有粘贴整个内容,而是链接到我在此处添加到我的博客的帖子。

于 2010-07-27T01:59:23.420 回答