[英]Wpf DataGrid : changing the XML field binding at runtime
我正在开发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;
}
}
看了更多之后,我在SO上找到了@Generic_Error的问题和答案 。 我稍稍修改了他的代码,这就是我提出的内容,可以进一步对其进行自定义。
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 );
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.