如何在带有Datatemplate的ListView中实现自动Vertical-Scrollbar?

时间:2016-07-05 13:21:34

标签: wpf

我希望将此模板插入ListView,并在我溢出MaxHeight时使滚动条显示。

我不知道它是ControlTemplate还是DataTemplate或其他什么。 DataBinding虽然有效。

我真的很感激提示和帮助

myinventory

3 个答案:

答案 0 :(得分:0)

您需要添加“ScrollViewer”作为要滚动的对象的父级,请尝试以下操作:

<DataTemplate>
  <ScrollViewer>
    <WrapPanel>
      <CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
      <TextBlock Text="{Binding Typ}" FontWeight="Bold" />
    </WrapPanel>
  </ScrollViewer>
</DataTemplate>

答案 1 :(得分:0)

解决方案可能是在 ListView 模板中添加 ScrollViewer

            <ListView.Template>
                <ControlTemplate>
                    <Border CornerRadius="4" BorderThickness="1" BorderBrush="#333333" Background="White">
                        <ScrollViewer>
                            <ItemsPresenter></ItemsPresenter>
                        </ScrollViewer>
                    </Border>
                </ControlTemplate>
            </ListView.Template>

答案 2 :(得分:0)

如果您有 StackPanel包装了listView 。就像这个例子一样。
有效!例如,只需将其更改为Grid,然后它将起作用。

    <StackPanel>
         <ListView Grid.Row="1" ItemsSource="{Binding Path=DictationVMs}" ScrollViewer.VerticalScrollBarVisibility="Visible"
                   Focusable="True" SelectedValue="{Binding Path=SelectedDictation,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}">
         <ListView.Template>
                <ControlTemplate>
                    <ScrollViewer>
                        <ItemsPresenter VerticalAlignment="Stretch"></ItemsPresenter>
                    </ScrollViewer>
                </ControlTemplate>
         </ListView.Template>
         <ListView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Path=DictationModel.Name}" HorizontalAlignment="Center" 
                                   VerticalAlignment="Center" FontSize="24" TextWrapping="Wrap"/>
                </DataTemplate>
         </ListView.ItemTemplate>
   </StackPanel>