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;
     }
}
Foi útil?

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
scroll top