2011-01-18 31 views
7

Existe la posibilidad de ocultar DataGrid-rows a través de DataBinding:
Si tengo elementos de un BO o un ViewModel que tienen una propiedad visible, existe la posibilidad de declarar un enlace por lo que la fila se ocultará si la propiedad está configurada como invisible y viceversa?Wpf DataGrid ocultar fila completa a través de DataBinding

+0

Si todo está atado por qué no basta con quitar los datos del modelo de la colección de soporte de manera que la fila es "oculto" y añadir los datos del modelo de nuevo a que sea "visible"? –

+0

@ Aaron: Lamentablemente, no puedo cambiar el contenido de las colecciones de origen. – HCL

Respuesta

15

Debería poder hacerlo a través del RowStyle. Algo como esto:

<DataGrid> 
    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="Visibility" Value="{Binding Visibility}" /> 
     </Style> 
    </DataGrid.RowStyle> 
</DataGrid> 
+0

+1 y acepto, ¡funciona genial! – HCL

+1

Podría agregar que su propiedad de enlace debe generar la cadena "Colapsado" para la fila que se va a contraer (no un valor booleano). – Johncl

+0

+1 @Jjohncl: ¡Eso fue Bang On! –