質問

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;
     }
}
役に立ちましたか?

解決

さらに調べてみると 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帰属
所属していません StackOverflow
scroll top