[英]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.