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

C# Wpf DataGrid:在运行时更改XML字段绑定,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我正在开发一个用于显示XML文件部分的WPF用户控件。我试图使用户控件灵活,以便可以从控件外部分配列标题和字段数据绑定 我发现我可以很容易地更改列标题,但尽管下面的代码似乎有希望,但SertMemberPath不会更改字段绑定 public void ChangeColumnDefinitions ( List<XmlGridColumnDefinition> columns ) { int columnnum = 0; foreach ( XmlGridCol

我正在开发一个用于显示XML文件部分的WPF用户控件。我试图使用户控件灵活,以便可以从控件外部分配列标题和字段数据绑定

我发现我可以很容易地更改列标题,但尽管下面的代码似乎有希望,但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;
     }
}
public void ChangeColumnDefinitions(列表列)
{
int columnnum=0;
foreach(列中的XmlGridColumnDefinition列)
{
this.datagrid.Columns[columnnum].Header=column.Heading;
this.datagrid.Columns[columnnum].SortMemberPath=string.Format(“元素[{0}].Value”,column.FieldName);
++柱状细胞;
}
}

在查看更多信息后。我稍微修改了他的代码,下面是我提出的,我可以进一步定制

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 );
    }
}
public void ChangeColumnDefinitions(IEnumerable列)
{
this.datagrid.Columns.Clear();
foreach(列中的var列)
{
DataGridTextColumn coldef=新DataGridTextColumn
{
标题=列。标题,
Binding=新绑定(string.Format(“元素[{0}].Value”,column.FieldName))
};
this.datagrid.Columns.Add(coldef);
}
}

在查看更多信息后。我稍微修改了他的代码,下面是我提出的,我可以进一步定制

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 );
    }
}
public void ChangeColumnDefinitions(IEnumerable列)
{
this.datagrid.Columns.Clear();
foreach(列中的var列)
{
DataGridTextColumn coldef=新DataGridTextColumn
{
标题=列。标题,
Binding=新绑定(string.Format(“元素[{0}].Value”,column.FieldName))
};
this.datagrid.Columns.Add(coldef);
}
}