我有一个DataTable,它由string类型和Node类
的自定义对象组成public class Node
{
public string Name { get; set; }
public int Id { get; set; }
public Node(string name, int id)
{
Name = name;
Id = id;
}
}
<DataGrid Name="data1" AutoGenerateColumns="True" ItemsSource="{Binding MyDataTable}" />
问题是我将DataTable绑定到Datagrid。列节点下的所有条目都显示为完整类名称。我想显示Node的Name属性。
答案 0 :(得分:1)
有两种方法可以实现这一目标:
简单的是覆盖 ToString()
类的 Node
方法并返回 Name
属性从它。
public class Node
{
....
public override string ToString()
{
return Name;
}
}
OR
您必须在dataGrid上将 AutoGenerateColumns
设置为 False
并提供您自己的一组列。
<DataGrid Name="data1" AutoGenerateColumns="False"
ItemsSource="{Binding MyDataTable}">
<DataGrid.Columns>
..... // Other columns will go here.
<DataGridTextColumn Binding="{Binding Node.Name}"/>
</DataGrid.Columns>
</DataGrid>