可以通过设置 DataGrid 的 AutoGeneratingColumn 事件来动态生成列,并根据绑定的数据类型来判断是否添加 IsMember 列。

在 XAML 中,添加 DataGrid 控件,并设置 AutoGeneratingColumn 事件:

<DataGrid x:Name="datagrid" AutoGeneratingColumn="datagrid_AutoGeneratingColumn"/>

在代码中,实现 AutoGeneratingColumn 事件:

private void datagrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    // 判断数据类型是不是 IsMember 属性所在的类型
    if (e.PropertyType == typeof(bool) && e.PropertyName == "IsMember")
    {
        // 创建一个新列
        DataGridCheckBoxColumn checkBoxColumn = new DataGridCheckBoxColumn();
        checkBoxColumn.Header = "Is Member";
        checkBoxColumn.Binding = new Binding("IsMember");
        // 将新列添加到 DataGrid 控件中
        e.Column = checkBoxColumn;
    }
}

代码中,先判断绑定的属性类型是不是 bool,然后再判断属性名是不是 IsMember,如果是,则创建一个新的 DataGridCheckBoxColumn 列,并将其添加到 DataGrid 控件中

C# WPF DataGrid 绑定ItemsSource 判断 IsMember

原文地址: http://www.cveoy.top/t/topic/hrmR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录