wpf - tabla - cambiar el tamaño de las celdas de un datagridview c#
Vincula la altura de una fila de cuadrícula con sus contenidos en WPF (1)
¿Intentó establecer la altura en Automático para lograr lo que desea?
<RowDefinition Height="Auto"/>
(¿O estoy pensando demasiado simple aquí ...?)
Tengo una cuadrícula con algunas filas. En la fila superior, tengo un ItemsControl que está vinculado dinámicamente a una colección y utiliza un DataTemplateSelector y ItemsPanelTemplate (con un único WrapPanel dispuesto horizontalmente). Aquí hay una versión simplificada de lo que tengo hasta ahora:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="2" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<GridSplitter Background="#666" Grid.Row="1" Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
<ItemsControl x:Name="items" Background="#DDD" Grid.Row="0" ItemTemplateSelector="{StaticResource itemTemplateSelector}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</Grid>
En lugar de establecer la altura de la primera fila en 40, me gustaría establecerla dinámicamente en función de la altura mínima que debe tener ItemsControl para ajustarse a todos sus contenidos. Como la altura de ItemsControl está limitada por la altura de la fila de cuadrícula, no puedo determinar qué elemento debo vincular y a qué propiedad del elemento debo vincularlo.
Tendría sentido vincular la Altura de la Fila de la Grilla a la "altura deseada" de ItemsControl. Entonces, encontré la propiedad DesiredSize y até la Altura de mi RowDefinition al DesiredSize.Height de ItemsControl. Eso funciona cuando se carga por primera vez, pero no se actualiza a medida que cambio el tamaño del control (recuerde, estoy usando un WrapPanel como ItemsPanelTemplate, así que al redimensionar la ventana, la altura de ItemsControl debería cambiar).
¿Alguien sabe si este tipo de situación incluso es compatible con el marco vinculante, o tendría que agregar el código del controlador de eventos para lograr esto?
Gracias.