C# 填充itemsource模板时无法显示滚动条

C# 填充itemsource模板时无法显示滚动条,c#,wpf,xaml,C#,Wpf,Xaml,我花了很长时间试图弄清楚如何让滚动条处理数据列表: <Grid Grid.Row="1"> <ItemsControl ItemsSource="{Binding AllItems}" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True"> <ItemsControl.ItemTempl

我花了很长时间试图弄清楚如何让滚动条处理数据列表:

  <Grid Grid.Row="1">
            <ItemsControl ItemsSource="{Binding AllItems}" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.CanContentScroll="True">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Grid VerticalAlignment="Center" Margin="0,6,0,0"  >
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition/>
                                <ColumnDefinition Width="150"/>
                            </Grid.ColumnDefinitions>
                                <TextBox Width="Auto" Margin="18,0,0,0"
                                     Text="{Binding ItemsProp1}" 
                                     IsReadOnly="True"/>
                            <ComboBox HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Grid.Column="1" 
                                      IsReadOnly="True" 
                                      ItemsSource="{Binding ItemsProp2}" 
                                      SelectedItem="{Binding ItemsProp3}" Margin="6,0,0,0"/>
                        </Grid>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Grid>

我见过使用ItemTemplate而不是DataTemplate的例子,所以我甚至不确定使用DataTemplate是否可行


我曾尝试将scrollviewer添加到网格中,但也没有成功。我还尝试在ItemsControl元素上方定义scrollviewer。当滚动出现时,它实际上仍然没有滚动

如果要将
ScrollViewer
添加到模板中的
网格
,则将其添加到每个单独的项目中,而不是整个列表中

最简单的解决方案是将列表本身包装在一个
ScrollViewer

<ScrollViewer>
    <ItemsControl>
       .....
    </ItemsControl>
</ScrollViewer>

.....

感谢您的回复。我提到我也试过这么做,但滚动条不起作用。。我想知道这是否与gridBy的高度有关。我的意思是scrollviewer是可见的,我的数据离开屏幕,我无法实际滚动。我需要设置scrollviewer的最大高度-_-