WPF DataGrid滚动条

时间:2011-07-16 20:50:22

标签: c# wpf xaml datagrid scrollbar

我正在尝试在必要时使WPF DataGrid显示滚动条。 您可以在下面看到我的用户控件的基本XAML代码:

<Grid x:Name="Data" Grid.Column="0" VerticalAlignment="Stretch" Height="Auto" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
    <RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Expander Header="Route Setup" Grid.Row="0" VerticalAlignment="Top" Background="White">
</Expander>
<Expander Header="Select Locations" Grid.Row="1" VerticalAlignment="Top" Background="White">
</Expander>
<DataGrid Grid.Row="2" ItemsSource="{Binding Locations, Mode=TwoWay}" Height="Auto" AutoGenerateColumns="False" ScrollViewer.CanContentScroll="True" 
    ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto">
</DataGrid>

这不起作用,当DataGrid超出可用空间时,我看不到任何scroolbars。我已经尝试在我的DataGrid周围使用滚动视图,但这并没有改变任何东西。

更新

知道usercontrol加载到具有以下标记的shell的LeftRegion中可能很重要:

    <Grid x:Name="LayoutRoot">
    <Grid.ColumnDefinitions >
        <ColumnDefinition Width="*" MinWidth="400" MaxWidth="600"/>
        <ColumnDefinition Width="9" />
        <ColumnDefinition Width="*" MinWidth="300" />
    </Grid.ColumnDefinitions>
    <GridSplitter x:Name="MainSplitter" HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch" Grid.Column="1"
        Margin="0" Width="9" Style="{DynamicResource gridSplitterVerticalStyle}"/>
    <ItemsControl Name="LeftRegion" Grid.Column="0" Background="Azure" Height="Auto" VerticalAlignment="Stretch" VerticalContentAlignment="Stretch"  cal:RegionManager.RegionName="LeftRegion">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Grid/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
    <ItemsControl  Name="RightRegion" Height="Auto" Background="DarkGreen"  VerticalAlignment="Stretch" VerticalContentAlignment="Stretch" Grid.Column="2" cal:RegionManager.RegionName="RightRegion">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Grid/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</Grid>

最好的问候

2 个答案:

答案 0 :(得分:11)

在名为“数据”的网格中,从第三个Height="Auto"中删除RowDefinition。至少有一行必须具有“*”高度(这是默认值)才能占用剩余的可用空间。

答案 1 :(得分:0)

解决它。我需要从第三个Height="Auto"中删除RowDefinition