【发布时间】:2011-02-16 00:31:56
【问题描述】:
我已经阅读了很多关于使用 IsSelected 绑定的复选框扩展 ListViews 的示例。但我想要更多。
我想要在选中状态和选中状态之间分开,所以我得到一个列表框,它有一个选中的项目,但可以有多个选中的项目。 不幸的是,ListViewItem 没有用于检查的属性,我看不到让 ListView 与自定义 CheckableListViewItem 一起使用的可能性。
当然,我可以使用带有选中属性的对象列表作为 ItemSource,但我认为这不是一个好方法。检查与否是列表或项目容器的问题,而不是其中列出的对象。除此之外,我不希望我的所有类(如用户、角色、组)都有对应的对象,如 checkableUser、checkableRole 和 checkableGroup。
我想要的行为可以很容易地为 UI 完成
<DataTemplate x:Key="CheckBoxCell">
<StackPanel Orientation="Horizontal">
<CheckBox />
</StackPanel>
</DataTemplate>
还有一个
<GridViewColumn CellTemplate="{StaticResource CheckBoxCell}" Width="30"/>
但是如果没有绑定复选框,我无法检查它是否被选中。
有没有办法完成类似的事情?对我来说完美的解决方案是拥有 listView1.SelectedItem、listView1.CheckedItems 和 listView1.UncheckedItems,当然还有 listView1.CheckItem 和 listView1.UncheckItem。
感谢您的帮助。
【问题讨论】:
标签: wpf xaml listview checkbox