.net - ¿Es posible usar Triggers en Grid RowDeDefinitions?
wpf xaml (2)
Creo que el único problema con su código Xaml es que está sobrescribiendo DataTrigger al configurar Height explícitamente en RowDefinition
. Pruebe con usar un Setter en su lugar
<RowDefinition>
<RowDefinition.Style>
<Style>
<Setter Property="RowDefinition.Height" Value="2*"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="True">
<Setter Property="RowDefinition.Height" Value="2*"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="False">
<Setter Property="RowDefinition.Height" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</RowDefinition.Style>
</RowDefinition>
Tengo una grilla cuyas filas deben redimensionarse dinámicamente en función del modelo de vista. Me gustaría hacer algo como lo siguiente:
<RowDefinition Height="2*">
<RowDefinition.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="True">
<Setter Property="RowDefinition.Height" Value="2*"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="False">
<Setter Property="RowDefinition.Height" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</RowDefinition.Style>
</RowDefinition>
Esto compila, no arroja errores, pero no parece tener ningún efecto. ¿Hay algo que me falta, o la Cuadrícula no permite que sus filas cambien de tamaño después de que se dibuja la forma o algo por el estilo?
Sé que esta publicación tiene 3 años, pero aún así podría ayudar a alguien.
<RowDefinition>
<RowDefinition.Style>
<Style TargetType="RowDefinition">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="True">
<Setter Property="Height" Value="2*"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ShowSection}" Value="False">
<Setter Property="Height" Value="0"/>
</DataTrigger>
</Style.Triggers>
</Style>
</RowDefinition.Style>
</RowDefinition>
Estaba en la misma situación, logré hacerlo funcionar configurando TargetType en RowDefinition.