Wpf DataGrid:изменение привязки поля XML во время выполнения
-
03-07-2019 - |
Вопрос
Я разрабатываю Пользовательский элемент управления 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;
}
}
Решение
Оглядевшись вокруг, я нашел этот вопрос и ответ @Generic_Error на 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 );
}
}
Не связан с StackOverflow