我正在尝试创建一个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文件映射到一组预定义的输出,所以我希望用户通过下拉菜单选择每个输入文件标题的内容。
尝试在xaml中定义数据网格模板是否更好?或者可能将我的输入数据排列成一个类结构,这个类结构将以我想要的方式更容易地数据绑定到网格中?或完全不同的东西?
我对WPF很新,并且无法找到从这里开始的地方,所以即使是正确方向的指针也会非常有用!
编辑:
var comboColumn = new DataGridComboBoxColumn();
comboColumn.Header = new ComboBox();
SourceGrid.Columns.Add(comboColumn);
所以我理解我可以在代码中将标题设置为文本或组合框,但有没有办法将文本和组合框放在同一列标题中? 另外,我解决这个问题的方法是好的还是我应该看一个不同的控制?或者也许使用数据绑定而不是在代码中设置值?
答案 0 :(得分:1)
以下代码将帮助您在wpf中显示Combobox标题。
<DataGridTextColumn Binding="{Binding FirstName}">
<DataGridTextColumn.Header>
<ComboBox />
</DataGridTextColumn.Header>
</DataGridTextColumn>