【发布时间】:2016-02-18 18:41:20
【问题描述】:
我有一个列表视图,其中 ItemsSource 设置为像这样的 linq 查询的结果
listViewPlan.ItemsSource = new ObservableEvents(query);
结果的值绑定到 listView 的列。 现在我想添加另一个包含复选框的列,以便用户可以选择列表视图中的一些项目。所以我添加了这个
<GridViewColumn DisplayMemberBinding="{Binding select}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<CheckBox Tag="select"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumnHeader Click="SortClick" Tag="select" Content="" />
</GridViewColumn>
这会在列表视图中添加一个复选框列。但它不受 linq 结果的任何约束。所以我无法使用 listViewPlan.Items[i] 访问 Checkbox 的当前状态。我也不想从数据库中向数据类型添加布尔值,因为单个用户的复选框状态不应存储在全局任何地方。我可以创建另一个类似于 linq 类的类,并为 Checkbox 添加了一个布尔值。但后来我不得不来回复制所有成员变量。我该怎么做?
【问题讨论】:
-
您可以在 ViewModel 上包装您的对象,在 ViewModel 上公开您的“数据库”对象以使用绑定并创建 Bool 属性以与 Checkbox 绑定
标签: c# wpf linq listview checkbox