-3

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

然后当我选中或未选中 WPF DataGrid 列的复选框时如何获取 wpf 数据网格的 RowIndex...

4

2 回答 2

0

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

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

于 2012-10-29T07:30:52.477 回答
0

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

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然后,当您选中/取消选中网格可见性列中的复选框时,将更新绑定对象的属性。

于 2012-10-29T07:48:47.970 回答