我有一个带有一个CheckBox列的wpf DataGrid ....
然后当我检查或取消选中WPF DataGrid列的CheckBox时如何获取wpf数据网格的RowIndex ...
答案 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
对象的属性。