繁体   English   中英

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

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM