2009-04-29 3 views
1

Я разрабатываю WPF User Control для отображения частей файлов XML. Я пытаюсь сделать User Control гибким, чтобы я мог назначать заголовки столбцов и привязки данных полей извне элемента управления.Wpf DataGrid: изменение привязки поля 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; 
    } 
} 

ответ

1

Осмотрев больше I found this question and answer by @Generic_Error on 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); 
    } 
} 
Смежные вопросы