1

我将以下语句放在 xaml 中网格的第二行:

<ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1">
     <ListView Name="listView" Margin="5" Grid.Row="1">

                <ListView.View>
                    <GridView AllowsColumnReorder="True">
                        <GridViewColumn DisplayMemberBinding="{Binding Path=DateTime}" Header="Date Time" Width="140"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=Vehicle}" Header="Vehicle" Width="130"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=AlarmType}" Header="Alarm Type" Width="100"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=Direction}" Header="Direction" Width="100"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=Speed}" Header="Speed" Width="100"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=Alarmed}" Header="Alarmed" Width="100"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=LoadType}" Header="Load Type" Width="100"/>
                        <GridViewColumn DisplayMemberBinding="{Binding Path=Status}" Header="Status" Width="110"/>
                    </GridView>
                </ListView.View>
            </ListView>     
        </ScrollViewer>
 </Grid>

我将 listView.ItemSource 绑定到代码中定义的 ObservableCollection 以将数据填充到列表中。当添加到 GridView 的项目数超过列表视图高度时,垂直滚动条没有按照我在 XAML 中指定的方式出现。我做错了什么?非常感谢您的意见。谢谢你。

4

6 回答 6

6

这个对我有用:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <ScrollViewer VerticalScrollBarVisibility="Auto" Grid.Row="1">
            <ListView Name="listView" Margin="5" Grid.Row="1">

                <ListView.View>
                    <GridView AllowsColumnReorder="True">
                        <GridViewColumn DisplayMemberBinding="{Binding Path=.}" Header="Whatever" Width="140"/>
                    </GridView>
                </ListView.View>
            </ListView>
        </ScrollViewer>
    </Grid>
</Window>

但是,ListView控件模板已经包含一个ScrollViewer这样的,以便在需要时ScrollViewer出现ListViewas 中。为什么你需要把它包在另一个?

于 2008-11-10T10:40:30.490 回答
3

查看边距和填充是否正确。滚动条可以在某些东西的后面。

将外部容器高度设置为固定值,它可以拉伸列表视图,因此它永远不会显示滚动条。

高温高压

于 2008-11-10T09:40:01.003 回答
1

试试这个代码:

ListView listView = new ListView();
listView.SetValue(Grid.RowProperty, 1);
listView.SetValue(Grid.ColumnProperty, 1);
MainGrid.Children.Add(listView);
于 2012-06-28T05:53:09.160 回答
0
<Grid x:Name="MainMenuButtonGrid">
  <StackPanel Margin="50,0,0,0">
    <TextBlock Text="Please select any employee" Foreground="Wheat"/>
    <ListView x:Name="listEmployeeDetail" SelectedValuePath="EmployeeID">
      <ListView.View>
        <GridView>
          <GridViewColumn Header="EmployeeName" Width="100" DisplayMemberBinding="{Binding EmployeeName}"></GridViewColumn>
        </GridView>
      </ListView.View>
    </ListView>
  </StackPanel>
</Grid>
于 2012-04-28T22:20:29.553 回答
0

无需使用ScrollViewer. 只需删除ScrollViewer并仅使用ListView并尝试。

ListView listView = new ListView();
listView.SetValue(Grid.RowProperty, 1);
listView.SetValue(Grid.ColumnProperty, 1);
MainGrid.Children.Add(listView);

无需指定列表视图的宽度和高度。

于 2009-12-08T06:33:53.257 回答
0

您可以简单地使用 MaxHeight 属性将您的列表视图限制到特定高度,滚动条将自动出现。例如 :

 <ListView Name="listView" Margin="5" Grid.Row="1" MaxHeight="300">
            <ListView.View>
                <GridView AllowsColumnReorder="True">
                    <GridViewColumn DisplayMemberBinding="{Binding Path=DateTime}" Header="Date Time" Width="140"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Vehicle}" Header="Vehicle" Width="130"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=AlarmType}" Header="Alarm Type" Width="100"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Direction}" Header="Direction" Width="100"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Speed}" Header="Speed" Width="100"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Alarmed}" Header="Alarmed" Width="100"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=LoadType}" Header="Load Type" Width="100"/>
                    <GridViewColumn DisplayMemberBinding="{Binding Path=Status}" Header="Status" Width="110"/>
                </GridView>
            </ListView.View>
        </ListView>   
于 2021-01-31T17:44:01.930 回答