簡體   English   中英

UWP C#ListView不可滾動

[英]UWP C# ListView not scrollable

我有這個ListView:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <ScrollViewer VerticalScrollBarVisibility="Visible" VerticalScrollMode="Enabled">
        <ListView x:Name="entryList" Width="360">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel BorderBrush="Gray">
                        <TextBlock Text="{Binding title}"></TextBlock>
                        <TextBlock Text="{Binding description}"></TextBlock>
                        <TextBlock Text="{Binding author}"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ScrollViewer>
</Grid>

我為ItemsSource獲取我的數據,以單獨的方法調用web服務(工作正常)

private async void Page_Loading(Windows.UI.Xaml.FrameworkElement sender, object args)
{
    entryList.ItemsSource = await webserviceManager.getItems(param1, param2);
}

我的ListView也填充了項目,但我無法弄清楚為什么它無法垂直滾動。 檢查ScrollableHeight我總是0,所以我認為項目是問題,控件不會將它們視為邏輯項目到目前為止。 如果我給ScrollViewer一個具體的高度一切都很好 - 但這沒有可行的解決方案,我不知道應用程序將在以后運行的設備。 所以我不知道自己能做什么,也許有人可以幫助我?

編輯:DataSource得到了一個

ObservableCollection<entryObject> objlist = new ObservableCollection<NewsObject>();

其中entryObject是一個帶字符串屬性的簡單數據保存類。

我已經解決了問題 - 通過RowDefinitions將所有StackPanel更改為網格。

    <ListView x:Name="entryList" Width="360">
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid BorderBrush="Gray">
                    <Grid.RowDefinitions>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                        <RowDefinition></RowDefinition>
                    </Grid.RowDefinitions>
                    <TextBlock Text="{Binding title}" Grid.Row="0"></TextBlock>
                    <TextBlock Text="{Binding description}" Grid.Row="1"></TextBlock>
                    <TextBlock Text="{Binding author}" Grid.Row="2"></TextBlock>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

我還使用基本的SplitView更改了我的MainPage,其中內容面板中的框架稱為帶有ListView的頁面。 這里有一個Grid.Rows現在是一個恆定的高度 - 而且,看起來有點奇怪,但現在一切正常。

<SplitView.Content>
    <Grid x:Name="mainPagePanel">
        <Grid.RowDefinitions>
            <RowDefinition Height="50"></RowDefinition>
            <RowDefinition></RowDefinition>
        <Button x:Name="HamburgerButton" FontFamily="Segoe MDL2 Assets" Content="&#xE700;" Width="50" Height="50" Background="Transparent" Click="HamburgerButton_Click" Grid.Row="0"/>                
        <Frame x:Name="viewFrame" Grid.Row="1"></Frame>
    </Grid>            
</SplitView.Content>

ListView已經包含Style中的ScrollViewer 所以,只需刪除內部的ScrollViewer

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <ListView x:Name="entryList" Width="360">
        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel BorderBrush="Gray">
                    <TextBlock Text="{Binding title}"></TextBlock>
                    <TextBlock Text="{Binding description}"></TextBlock>
                    <TextBlock Text="{Binding author}"></TextBlock>
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM