wpf - Obtenga DefaultView DataRowView de DataRow
binding dataset (2)
row.Table.DefaultView[row.Table.Rows.IndexOf(row)]
Esta es una buena respuesta. Pero si te encuentras en esta situación, deberías considerar aprender más sobre DataViews y cómo se usan, luego refactorizar tu código para que sea centrado en la vista en lugar de centrico.
Aquí está la situación: necesito vincular una página FixedPage
WPF con un DataRow
. Los enlaces no funcionan contra DataRows
; funcionan contra DataRowViews
. Necesito hacer esto de la manera más genérica posible, ya que no sé nada y no tengo control sobre lo que está en el DataRow
.
Lo que necesito es poder obtener un DataRowView
para un DataRow
dado. No puedo usar el método Find()
en DefaultView
porque toma una clave, y no hay garantía de que la tabla tenga un conjunto de claves principal.
¿Alguien tiene alguna sugerencia sobre la mejor manera de evitar esto?
No es exactamente una pieza sexy de código, pero no parece ser una forma automática de encontrar la fila sin solo hacer un bucle en la mesa.
DataRowView newRowView = null;
foreach (DataRowView tempRowView in myDataTable.DefaultView)
{
if (tempRowView.Row == rowToMatch)
newRowView = tempRowView;
}
if (newRow != null)
UseNewRowView(newRowView);
else
HandleRowNotFound();