Wpf DataGrid:изменение привязки поля XML во время выполнения

StackOverflow https://stackoverflow.com/questions/802322

  •  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 );
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top