Obtenha o DefaultView DataRowView de um DataRow
-
09-06-2019 - |
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?
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.