如何使用C#而不是XAML动态地将Checkbox添加到Datagrid标头?

问题描述 投票:0回答:1
 private void gridView_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
    {
        if (e.PropertyName == "code" && rdbCode.IsChecked == true)
        {
            e.Column.Header = "Acct Code";
        }
        else if (e.PropertyName == "code" && rdbPart.IsChecked == true)
        {
            e.Column.MaxWidth = 0;
        }

        if (e.PropertyName == "um")
        {
            e.Column.MaxWidth = 0;
        }

        if (e.PropertyName == "part" && rdbPart.IsChecked == true)
        {
            e.Column.Header = "Part ID";
        }
        else if (e.PropertyName == "part" && rdbCode.IsChecked == true)
        {
            e.Column.MaxWidth = 0;
        }
    }

我知道我可以使用XAML向Datagrid标头添加一个复选框,但是我可以在AutoGeneratingColumn事件期间使用C#添加一个吗?我使用相同的Datagrid进行不同的搜索,并使用不同的列表动态填充网格。我需要能够在添加数据时向标题添加“全部检查”复选框,而不是已经格式化。

c# wpf datagrid
1个回答
3
投票

可能它可以这样做:

private void DataGrid_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.PropertyName == "Name")
    {
        e.Column.Header = new CheckBox { Content = "Check all" };
    }
}

结果:

The result

通常,我们在xaml中可以做的所有事情也可以在代码中完成

© www.soinside.com 2019 - 2024. All rights reserved.