extended wpf datagrid scroll prism region

extended wpf toolkit github



WPF DataGrid no muestra barras de desplazamiento y se está quedando sin área visible (1)

Al igual que otros, tengo un DataGrid que no muestra las barras de desplazamiento. Lo que creo que es exclusivo de mi situación es que no veo un StackPanel en ningún lugar del árbol visual o lógico. Estoy usando WPF Inspector para ver los árboles. He intentado varias sugerencias para establecer el alto y el ancho de las columnas y filas de Cuadrícula que contienen sin éxito. Estoy seguro de que me falta algo que permita que el contenido se extienda más allá del área visible, pero aún no sé qué es. Cualquier ayuda sería apreciada. Esta aplicación es un Prisma WPF con aplicación MEF y DataGrid está dentro de un UserControl que se encuentra en una región Prism.

Shell Window XAML:

<Window> <Grid x:Name="GridOuterShell"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <ribbon:Ribbon Grid.Row="0" > ... </ribbon:Ribbon> <Grid x:Name="GridShellContent" Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto" /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="350" MinWidth="300"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <local:RegionBorderControl Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" Margin="2,2,8,2" RegionName="{Binding MainRegionDisplayName}" Style="{DynamicResource RegionBorderControlStyle}"> <ContentControl prism:RegionManager.RegionName="MainRegion" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"/> </local:RegionBorderControl> <GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="3" HorizontalAlignment="Center" VerticalAlignment="Stretch" Width="3" ShowsPreview="True" ResizeDirection="Columns" /> <local:RegionBorderControl Grid.Row="0" Grid.Column="2" RegionName="{Binding RightTopRegionDisplayName}" Style="{DynamicResource RegionBorderControlStyle}"> <ContentControl prism:RegionManager.RegionName="RightTopRegion" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch"/> </local:RegionBorderControl> <GridSplitter Grid.Row="1" Grid.Column="3" HorizontalAlignment="Stretch" VerticalAlignment="Center" Height="3" ShowsPreview="true" ResizeDirection="Rows" ResizeBehavior="PreviousAndNext" Background="Silver"/> <local:RegionBorderControl Grid.Row="2" Grid.Column="2" RegionName="{Binding RightBottomRegionDisplayName}" Style="{DynamicResource RegionBorderControlStyle}"> <ContentControl prism:RegionManager.RegionName="RightBottomRegion"/> </local:RegionBorderControl> </Grid> <StatusBar Grid.Row="2"> ... </StatusBar> </Grid> </Window>

UserControl XAML:

<UserControl> <Grid x:Name="GridMain"> <Grid.ColumnDefinitions> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition /> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <DockPanel Grid.Row="0" LastChildFill="False" HorizontalAlignment="Stretch" Width="Auto" > <ToolBar x:Name="tbToolBar" DockPanel.Dock="Left" Background="{x:Null}"> ... </ToolBar> </DockPanel> <DataGrid AutoGenerateColumns="False" Grid.Row="2" Name="DataGridList" ItemsSource="{Binding MyItems}" IsReadOnly="True" CanUserResizeRows="False" SelectionMode="Single" SelectedItem="{Binding Path=SelectedDataGridRecord, Mode=TwoWay}" Style="{StaticResource DataGridDefault}" > <DataGrid.Columns> ... </DataGrid.Columns> </DataGrid> </Grid>


Tiene el DataGrid en una fila de cuadrícula donde RowDefinition Height es automático, por lo que la cuadrícula se medirá con una altura infinita y se organizará en su DesiredSize.Height y nunca mostrará las barras de desplazamiento. Parece que la cuadrícula debe estar en la fila 1 o hacer que la altura de la fila 2 sea * en lugar de automática.