如何使用C#而不是XAML动态地将Checkbox添加到Datagrid标头?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用C#而不是XAML动态地将Checkbox添加到Datagrid标头?相关的知识,希望对你有一定的参考价值。
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进行不同的搜索,并使用不同的列表动态填充网格。我需要能够在添加数据时向标题添加“全部检查”复选框,而不是已经格式化。
答案
可能它可以这样做:
private void DataGrid_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyName == "Name")
{
e.Column.Header = new CheckBox { Content = "Check all" };
}
}
结果:
通常,我们在xaml中可以做的所有事情也可以在代码中完成
以上是关于如何使用C#而不是XAML动态地将Checkbox添加到Datagrid标头?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 DB2 sql 代码动态地将列转置为表的行,其中列可能会随着时间的推移而增加且无需更改代码?
如何在 C#/XAML Metro App 中使用 HttpWebRequest(或)HttpClient 进行同步服务调用?