WPF DataGrid: alterar o campo XML obrigatório em tempo de execução
-
03-07-2019 - |
Pergunta
Estou desenvolvendo um WPF User Control para a exibição de partes de arquivos XML. Eu estou tentando fazer o usuário controle flexível, para que eu possa atribuir os títulos de coluna e ligações de dados de campo do lado de fora do controle.
Eu descobri que eu posso facilmente mudar os títulos das colunas, mas enquanto o seguinte código parecia ter promessa, SertMemberPath não muda o campo de ligação
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;
}
}
Solução
Depois de olhar em torno de mais I encontrei esta pergunta e resposta por @Generic_Error no SO . I modificado seu código um pouco e aqui está o que eu vim com esse que eu possa personalizar ainda mais.
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 );
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow