ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

UWP C#ListView无法滚动

2019-10-27 09:09:03  阅读:199  来源: 互联网

标签:listview win-universal-app windows-mobile c


我有这个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>

我获得了通过单独的方法调用Web服务的ItemsSource的数据(工作正常)

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

我的ListView也充满了项目,但我不知道为什么它不能垂直滚动.检查ScrollableHeight我总得0,所以我认为这些都是问题,到目前为止,该控件还没有将它们视为逻辑项.如果我给ScrollViewer一个具体的高度,那一切都很好-但这不是可行的解决方案,因为我不知道该应用程序稍后将在哪个设备上运行.所以我不知道我还能做什么,也许有人可以帮助我?

编辑:数据源得到了

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

其中entryObject是具有字符串属性的简单数据保存类.

解决方法:

我已经解决了问题-通过将所有StackPanels更改为具有RowDefinitions的网格.

    <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,win-universal-app,windows-mobile,c
来源: https://codeday.me/bug/20191027/1943215.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有