gpt4 book ai didi

c# - 标题中带有下拉菜单的自定义 WPF DataGrid

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:38 30 4
gpt4 key购买 nike

我正在尝试创建一个在标题中具有下拉菜单的 DataGrid,但我不确定该怎么做。

DataGrid 本身是从一个 CSV 文件填充的,该文件可以有许多不同的格式,所以我不能在 XAML 中预先定义列,而是像这样设置它们:

 //add headers as columns on the data grid
var headerRow = _inputFile.GetHeaderRow();
foreach (var hr in headerRow)
{
var textColumn = new DataGridTextColumn();
textColumn.Header = hr;
SourceGrid.Columns.Add(textColumn);
}

我的目标是在标题列(或第一行,如果样式合适)也有下拉菜单,因为我的想法是将输入的 CSV 文件映射到一组预定义的输出,所以我' d 喜欢用户通过下拉菜单选择每个输入文件头将其映射到什么。

尝试在 xaml 中定义数据网格模板是否更好?或者也许将我的输入数据安排到一个类结构中,这样可以更容易地以我想要的方式将数据绑定(bind)到网格?还是完全不同?

我是 WPF 的新手,很难找到从这里开始的地方,所以即使是正确方向的指针也会非常有帮助!


编辑:

var comboColumn = new DataGridComboBoxColumn();
comboColumn.Header = new ComboBox();
SourceGrid.Columns.Add(comboColumn);

所以我知道我可以在代码中将标题设置为文本或组合框,但是有没有办法将文本和组合框放在同一列标题中?另外,我解决这个问题的方法是好的还是我应该考虑另一种控制?或者可能使用数据绑定(bind)而不是在代码中设置值?

最佳答案

下面的代码将帮助您在 wpf 中显示组合框标题。

<DataGridTextColumn Binding="{Binding FirstName}">
<DataGridTextColumn.Header>
<ComboBox />
</DataGridTextColumn.Header>
</DataGridTextColumn>

关于c# - 标题中带有下拉菜单的自定义 WPF DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14755737/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com