【发布时间】:2013-06-19 06:43:31
【问题描述】:
在 WinRT 应用程序 (C#) 中,我有 List<Item> items,它绑定到 ListBox。Class Item 有 2 个字段:string Name 和 bool IsSelected。如您所知,我想将 IsSelected 字段绑定到 ListBoxItem 的 IsSelected 属性。
为什么我需要这个?为什么我没有使用 ListBox 的 SelectedItems 属性?
-
ListBox刚刚加载的时候,我已经有一些Items,一定是IsSelected = true - 我不想创建另一个集合来存储所有选定的项目。
我在寻找什么?
我正在寻找优雅的解决方案,例如在 WPF 中:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
但我们都知道,WinRT 根本不支持 setter 中的绑定。
我还在Filip Skakun 博客中查看nice post - 这是一种解决方案,但我需要自己写一些BindingBuilder/BindingHelper。
现在,我知道两种方法可以解决我的问题:
- 绑定
ListBox的SelectedItems属性并存储另一个项目集合。 - 我不喜欢这种方式 - 像 Filip Skakun 那样做 - 如果我什么都没找到,我会使用它。
在理想情况下,我想为此使用本机解决方案,或者可能有人已经为我的情况编写/测试了嵌套 BindingBuilder - 这也会有帮助。
【问题讨论】:
标签: c# xaml windows-8 windows-runtime