我正在与 Wpf DataGrid
作斗争.它的ItemsSource
是 DataTable
其中由类型细胞组成 Tuple<int, string>
这是关于如何创建我的 DataTable
的一小段代码.
// Create columns
for (int j = 0; j < maxCount; j++) {
dt.Columns.Add(selectedTests[i].Name + " " + (j + 1).ToString(), typeof(Tuple<int, string>));
}
// Create rows
for (int k = 0; k < tuple.Item2.Count; k++) {
var newRow = dt.NewRow();
dt.Rows.Add(newRow);
}
...
dt.Rows[k][i + m] = new Tuple<int, string>(n, str);
然后我设置这个DataTable
到我的DataGrid
我只想显示属性 Item2
从元组中,我现在需要保留元组实例。并且无法定义我的列来设置 displaymemberPath
因为是自动生成的。
<DataGrid x:Name="dataGrid" LoadingRow="dataGrid_LoadingRow_1" ItemsSource="{Binding DataTable}" DisplayMemberPath="{Binding Item2}">
一直以来,我的数据网格都将我的元组转换为字符串,如下所示:
最佳答案
如本 question说,您可以设置与代码隐藏的绑定(bind)。
因此,您可以订阅 yourgrid_AutoGeneratingColumn
事件并执行此操作:
(e.Column as DataGridTextColumn).Binding = new Binding("Title");
当然,您应该通过一些解决方案将您的 ColumnName
传递到 AutoGeneratingColumn
事件中...
关于c# - 如何在 DataGrid 中设置 DisplayMemberPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14433200/