我正在开发一个 WPF用户控件,用于显示部分XML文件。我正在尝试使用户控件灵活,以便我可以从控件外部分配列标题和字段数据绑定。
我发现我可以轻松更改列标题,但是虽然以下代码似乎有希望,但SertMemberPath不会更改字段绑定
public void ChangeColumnDefinitions ( List<XmlGridColumnDefinition> columns )
{
int columnnum = 0;
foreach ( XmlGridColumnDefinition column in columns )
{
this.datagrid.Columns[columnnum].Header = column.Heading;
this.datagrid.Columns[columnnum].SortMemberPath = string.Format ( "Element[{0}].Value", column.FieldName );
++columnnum;
}
}
答案 0 :(得分:1)
环顾四周后我found this question and answer by @Generic_Error on SO。我稍微修改了他的代码,这是我想出来的,我可以进一步定制。
public void ChangeColumnDefinitions ( IEnumerable<XmlGridColumnDefinition> columns )
{
this.datagrid.Columns.Clear ();
foreach ( var column in columns )
{
DataGridTextColumn coldef = new DataGridTextColumn
{
Header = column.Heading,
Binding = new Binding ( string.Format ( "Element[{0}].Value", column.FieldName ) )
};
this.datagrid.Columns.Add ( coldef );
}
}