Wpf DataGrid:在运行时更改XML字段绑定

时间:2009-04-29 13:14:18

标签: c# wpf data-binding datagrid

我正在开发一个 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;
     }
}

1 个答案:

答案 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 );
    }
}