检查Datagrid列的CheckBox时如何获取WPF dataGrid的RowIndex

时间:2012-10-29 07:21:55

标签: c# wpf

我有一个带有一个CheckBox列的wpf DataGrid ....

然后当我检查或取消选中WPF DataGrid列的CheckBox时如何获取wpf数据网格的RowIndex ...

2 个答案:

答案 0 :(得分:0)

我知道在DataGrid中检索行索引的唯一方法是遍历可视树并对其进行计数。通常,在wpf datagrid中基于行索引构建逻辑是一个坏主意。这是因为默认情况下网格是虚拟化的,并且该索引可能是错误的。

所以要做的就是在ViewModel中添加一个数字,该数字作为行的数据源提供,并在事件处理程序中使用。

答案 1 :(得分:0)

实际上你不需要行索引。你真正需要的是改变你的绑定项目。根据您的previous question,您正在尝试更改分配给网格的项目的属性。您不必手动执行此操作。如果你有课

public class UserForm
{
    public int FormId { get; set; }
    public string FormName { get; set; }
    public bool Visibility { get; set; }
}

您将表单列表分配给DataGrid

<DataGrid ItemsSource="{Binding UserForms}" />

或代码

dataGrid.AutoGenerateColumns = true;
dataGrid.ItemsSource = UserForms;    

当您选中/取消选中网格的“可见性”列中的复选框时,将更新绑定UserForm对象的属性。

相关问题