2017-12-09 21 views
0

私は単純なグリッド(2x2)のページを持っています。左下の1つのグリッドに別のグリッドがあり、このグリッドの内側にはコレクションにバインドされたListViewがあります。 ListViewの高さが増加するように、エントリをコレクションに追加できます(ListViewの高さはautoに設定され、利用可能なすべての領域が使用されます)。UWP:リストビューをスクロールできない

私が欲しいのは、使用可能なスペース(画面の高さから)がすべて使用されている場合、ListViewのスクロールバーが表示され、使用できるはずです。面白い(unfunny)ことは:スクロールバーが表示されますが、私はそれらを使用することはできません、私はリストビューをホバーときに表示される垂直スクロールバーでListViewをスクロールすることはできません。

ListViewの高さを固定値に設定しても機能しますが、そのようにしたくないのは、画面上の使用可能なスペースをすべて使用しないためです。

これは、ページのXAML(私はデモの目的のためにいくつかの部分を削除)である:それはこのように動作している理由

<Page 
    x:Class="Qooli.TimeTracker.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:Qooli.TimeTracker" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d"> 

    <Page.Resources> 
     ... 
    </Page.Resources> 

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"></RowDefinition> 
      <RowDefinition Height="Auto"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"></ColumnDefinition> 
      <ColumnDefinition Width="Auto"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 


     <StackPanel Name="spAddEntry" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30"> 
      <TextBlock Text="Add new entry:" Name="lblAddNewEntry" /> 
      ... 
     </StackPanel> 

     <StackPanel Grid.Row="0" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30"> 
      <TextBlock Text="Allocated time:" Name="lblAllocatedTime" /> 
      ... 
     </StackPanel> 

     <Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" Margin="30"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="Auto"></RowDefinition> 
       <RowDefinition Height="Auto"></RowDefinition> 
      </Grid.RowDefinitions> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto"></ColumnDefinition> 
      </Grid.ColumnDefinitions> 
      <TextBlock Text="Daily overview:" Name="lblDailyOverview" Grid.Row="0" Grid.Column="0" /> 
      <ListView Name="lvTimeEntries" Grid.Row="1" Grid.Column="0" HorizontalAlignment="Left" 
         Height="Auto" 
         MinHeight="100" 
         VerticalAlignment="Top" 
         MinWidth="300" 
         SelectionMode="Single" 
         ItemsSource="{x:Bind ViewModel.TimeEntriesAdvancedCollectionView, Mode=OneWay}" 
         ScrollViewer.VerticalScrollBarVisibility="Visible" 
         ScrollViewer.IsVerticalRailEnabled="True" 
         ScrollViewer.VerticalScrollMode="Enabled"> 
       <ItemsControl.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel></StackPanel> 
        </ItemsPanelTemplate> 
       </ItemsControl.ItemsPanel> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate x:DataType="local:TimeEntry"> 
         <Grid Background="{Binding Type, Converter={StaticResource TimeEntryTypeColorConverter}}" Padding="5"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="200"></RowDefinition> 
          </Grid.RowDefinitions> 
          <Grid.ColumnDefinitions> 
           <ColumnDefinition Width="Auto"></ColumnDefinition> 
           <ColumnDefinition Width="Auto"></ColumnDefinition> 
           <ColumnDefinition Width="Auto"></ColumnDefinition> 
           <ColumnDefinition Width="*"></ColumnDefinition> 
          </Grid.ColumnDefinitions> 
          <TextBlock Text="{x:Bind Time, Mode=OneWay}" Style="{StaticResource TitleTextBlockStyle}" 
             MinWidth="60" 
             MaxWidth="60" 
             Grid.Row="0" Grid.Column="0"> 
          </TextBlock> 
          <TextBlock Text="{x:Bind Title, Mode=OneWay}" Style="{StaticResource BodyTextBlockStyle}" Margin="5,0,0,0" 
             MinWidth="100" 
             MaxWidth="100" 
             Grid.Row="0" Grid.Column="1"> 
          </TextBlock> 
          <Button Name="btnEditTimeEntry" Grid.Row="0" Grid.Column="2" Margin="5,5,5,5"> 
           <SymbolIcon x:Name="edit" Symbol="Edit"/> 
          </Button> 
          <Button Name="btnDeleteTimeEntry" Grid.Row="0" Grid.Column="3" Margin="5,5,5,5"> 
           <SymbolIcon x:Name="delete" Symbol="Delete"/> 
          </Button> 
         </Grid> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ListView> 
     </Grid> 

     <StackPanel Grid.Row="1" Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="30"> 
      <TextBlock Style="{StaticResource summaryTextStyle}" Text="Start time:" Name="lblDayStartTime" /> 
      ... 
     </StackPanel> 

    </Grid> 
</Page> 

誰かが見つけることができますか?

+1

グリッドの行/セルの高さはauto - >すべての内部で必要なすべてのスペースを得ます。十分なスペースがあれば、なぜスクロールしますか? –

+0

したがって、ListViewが配置されているグリッドの行の高さを設定するか、他のグリッド(メインの2x2グリッドなど)の高さを設定する必要がありますか? – Patric

+1

両方のグリッドの2番目の行の高さを "*"に設定します。 –

答えて

1

両方のグリッドで2番目の行の高さを"*"に設定する必要があります。

関連する問題