Pergunta

Esta é a situação:Eu preciso vincular um WPF FixedPage contra um DataRow.As ligações não funcionam contra DataRows;eles trabalham contra DataRowViews.Preciso fazer isso da maneira mais genérica possível, pois não sei nada e não tenho controle sobre o que está no DataRow.

O que eu preciso é conseguir um DataRowView para um dado DataRow.Eu não posso usar o Find() método no DefaultView porque isso requer uma chave e não há garantia de que a tabela terá uma chave primária definida.

Alguém tem alguma sugestão sobre a melhor maneira de contornar isso?

Foi útil?

Solução

Não é exatamente um trecho de código atraente, mas não parece ser uma maneira automatizada de encontrar a linha sem apenas fazer um loop na tabela.

        DataRowView newRowView = null;
        foreach (DataRowView tempRowView in myDataTable.DefaultView)
        {
            if (tempRowView.Row == rowToMatch)
                newRowView = tempRowView;
        }
        if (newRow != null)
            UseNewRowView(newRowView);
        else
            HandleRowNotFound();

Outras dicas

row.Table.DefaultView[row.Table.Rows.IndexOf(row)]

Esta é uma resposta correta.Mas se você se encontrar nessa situação, considere aprender mais sobre DataViews e como eles são usados ​​e, em seguida, refatorar seu código para ser centrado na visualização, em vez de centrado na tabela.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top