1

xamlのグリッドの2行目に次のステートメントを配置します。

<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ような が既に含まれています。なぜ別のものにラップする必要があるのですか?ScrollViewerListView

于 2008-11-10T10:40:30.490 に答える
3

マージンとパディングが正しいことを確認してください。スクロールバーは何かの後ろにある可能性があります。

外部コンテナの高さを固定値にすると、リストビューが引き伸ばされてスクロールバーが表示されなくなります。

HTH

于 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 に答える