2011-07-20 12 views
7

Tengo un DataGrid que muestra un montón de objetos. Esos objetos tienen una propiedad IsDetailsExpanded y quiero vincular la propiedad DataRows DetailsVisibility a esa propiedad.WPF DataGrid RowDetails Enlace de visibilidad a una propiedad (solo con XAML)

Mi primer enfoque funciona, pero requiere un poco de código subyacente (que me gustaría deshacerse de)

manejo el LoadingRow caso

void LoadingRowHandler(object sender, DataGridRowEventArgs e) 
{ 
    Binding b = new Binding() 
    { 
     Source = e.Row.DataContext, 
     Path = new PropertyPath("IsExpanded"), 
     Converter = (IValueConverter)Resources["BoolToVisi"], 
     Mode = BindingMode.TwoWay 
    }; 
    e.Row.SetBinding(DataGridRow.DetailsVisibilityProperty, b); 
} 

creo que tiene que haber una manera de lograr algo similar en XAML, pero desafortunadamente no tengo la menor pista. ¿Algunas ideas? sugerencias?

Respuesta

14

Se puede utilizar un Style para el tipo DataGridRow, así:

<DataGrid Name="dataGrid1" Margin="12,12,0,0"> 
    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="DetailsVisibility" Value="{Binding IsExpanded, Converter={StaticResource BoolToVisi}}" /> 
     </Style> 
    </DataGrid.RowStyle> 
</DataGrid> 
+0

Exactamente. Esa es la forma xaml. Solo propiedad debe ser igual a DetailsVisibility. –

+0

@ Yiğit - Gracias por señalar mi error de copiar y pegar :-) – CodeNaked

+0

A veces quiero abusar de esta función de comentarios y soltar algunos emoticones aleatorios. Está mal visto: :))))) –

Cuestiones relacionadas