wp8.1 Study7: ListView 和GridView应用

对于列表控件,WP8.1常用的是ListView、GridView、ListBox控件。其中前两个是从第三个继承来的。

1、ListView控件

它是展示垂直列表的,如下图所示。它十分适合展示数据。

2、GridView控件

它是行列表展示数据的控件,排列图如下。通常用来展示基于图片的数据。

3、控件的Templates

常用的有HeaderTemplate、FooterTemplate、ItemTemplate。本文最下面有相关代码。

(其中还有ItemContainerStyle、ItemsPanel

4、属性:重新排序Reordering

WP8.1中:MyListView.ReorderMode = ListViewReorderMode.Enabled;

Win8.1中:MyListView.CanReorderItems = false;

但Grouped Lists (分组列表)不能重新排序。

5、属性:多种选定MultiSelection

当开启MultiSelection后,列表会变为下图。开启MultiSelection代码为:MyListView.SelectionMode =  ListViewSelectionMode.Multiple;

6、运用实例:

xaml代码:

        <Grid Grid.Row="1" x:Name="ContentRoot" Margin="19,9.5,19,0">
            <ListView Name="view1"
                      SelectionMode="None"
                      AllowDrop="True"
                      CanDragItems="True"
                      IsSwipeEnabled="True">
                <ListView.HeaderTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <Canvas Height="15" Background="#962381E0">
                                <TextBlock Text="header">
                                    <TextBlock.Foreground>
                                        <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                                            <GradientStop Color="Black" Offset="0"/>
                                            <GradientStop Color="#FFF9F5F5" Offset="1"/>
                                        </LinearGradientBrush>
                                    </TextBlock.Foreground>
                                </TextBlock>
                            </Canvas>
                        </StackPanel>
                    </DataTemplate>
                </ListView.HeaderTemplate>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding Id}" Style="{ThemeResource ListViewItemTextBlockStyle}" Width="100"/>
                            <TextBlock Text="{Binding Name}"  Style="{ThemeResource ListViewItemTextBlockStyle}"/>
                        </StackPanel>

                    </DataTemplate>
                </ListView.ItemTemplate>
                <ListView.FooterTemplate>
                    <DataTemplate>
                        <TextBlock Foreground="Red" Text="这是个学习的好例子"/>
                    </DataTemplate>
                </ListView.FooterTemplate>
            </ListView>
        </Grid>
    </Grid>
    <Page.BottomAppBar>
        <CommandBar>
            <CommandBar.SecondaryCommands>
                <AppBarButton Label="appbarbutton"/>
            </CommandBar.SecondaryCommands>
            <AppBarButton Name="AllApps" Icon="AllApps" Label="多选" Click="AllApps_Click"/>
            <AppBarButton Name="viewall" Icon="ViewAll" Label="appbarbutton" Click="viewall_Click"/>
        </CommandBar>
    </Page.BottomAppBar>

相应的部分C#代码:

 List<School> items = new List<School>();
        public string[] str=new string[]{"华农","华工","中大","华师","暨大","广工","广外","广大","深大","广中医","南医大"};
        Random random = new Random();

            for (int i = 0; i < 100; i++)
            {
                items.Add(new School { Id = i, Name = str[random.Next(0,10)] });
            }
            this.view1.ItemsSource = items;

...

private void AllApps_Click(object sender, RoutedEventArgs e)
        {
            if (view1.SelectionMode == ListViewSelectionMode.Multiple)
            {
                view1.SelectionMode = ListViewSelectionMode.Single;
            }
           else
                view1.SelectionMode = ListViewSelectionMode.Multiple;
        }

        private void viewall_Click(object sender, RoutedEventArgs e)
        {
            if ( view1.ReorderMode == ListViewReorderMode.Enabled)
            {
                 view1.ReorderMode = ListViewReorderMode.Disabled;
            }
            else
                 view1.ReorderMode = ListViewReorderMode.Enabled;
        }

        private void gotopage2_Click(object sender, RoutedEventArgs e)
        {
            Frame.Navigate(typeof(Page2));
        }
    }
时间: 2024-11-28 23:16:12

wp8.1 Study7: ListView 和GridView应用的相关文章

WP8.1学习系列(第二十七章)——ListView和GridView入门

快速入门:添加 ListView 和 GridView 控件 (XAML) 在本文中 先决条件 选择 ListView 或 GridView 将项添加到项集合 设置项目源 指定项目的外观 指定视图布局 向视图中添加标题 设置视图的交互模式 摘要和后续步骤 相关主题 重要的 API ListView GridView 你可以在 XAML 中使用 ListView 或 GridView 控件来显示数据集合,如联系信息列表.库中的图像或电子邮件收件箱中的内容. 目标: 了解如何将 ListView 和

Android 监听ListView、GridView滑动到底部

// 监听listview滚到最底部mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { // 当不滚动时 case OnScrollListener.SCROLL_STATE_IDLE: // 判断滚动到底部 if (view.get

GridView--scroolview嵌套listview和gridview

我们在真实项目中通常会遇到ListView或者GridView嵌套在ScrollView中问题.但是做的时候会发现,一旦两者进行嵌套,即会发生冲突.得不到我们希望的效果.由于ListView和GridView本身都继承于ScrollView,一旦在ScrollView中嵌套ScrollView,那么里面的ScrollView高度计算就会出现问题.我们也就无法得到想要的效果.下面进入正题,我们将分别讨论ScrollView中嵌套ListView和FGridView的情况: 核心解决方案: 重写Li

Android中适用于ListView、GridView等组件的通用Adapter

今天随便逛逛CSDN,看到主页上推荐了一篇文章Android 快速开发系列 打造万能的ListView GridView 适配器,刚好这两天写项目自己也封装了类似的CommonAdapter,以前也在github上看到过这样的库,于是自己也把自己的代码再次整理出来与大家分享,也希望能够在CSDN这个平台上学到更多的东西,下面就一起来看看吧. 平时我们在项目中使用到ListView和GridView组件都是都会用到Adapter,比较多的情况是继承自BaseAdapter,然后实现getCount

[安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果

List在各种手机应用中都有体现,是安卓UI设计的必修课. 本文将介绍在开发中如何利用ListView和GridView设计自定义列表. 下面分别是用ListView和GridView做的效果: 上面两个看似相差很大,但是其代码非常类似,主要有:     ① 在页面中嵌入ListView或GridView: ListView的activity_main.xml 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/r

Android实现ListView或GridView首行/尾行距离屏幕边缘距离

Android上ListView&GridView默认行都是置顶的,这样会很丑. 一般为了解决这个问题都会在首行或尾行加上一个隐藏的View,那样实在是太麻烦了.在网上看博客的时候突然看到这个属性真的很有用! 直接上关键属性: 设置ListView或GridView的android:clipToPadding = true, 然后通过paddingTop和paddingBottom设置距离就好了. 博客原文: http://www.cnblogs.com/xitang/p/3606578.htm

Listview或者GridView嵌套在ScrollView中只显示一行item解决方法。

页面里有ListView(GridView)和一些固定布局让他们一起在整个屏幕上滚动方法: (1)自定义ListView(GridView),重写onMeasure()方法,我以GridView为例(ListView只需要extends ListView)具体代码如下: package top.ant.view; import android.content.Context; import android.util.AttributeSet; import android.widget.Grid

android listView嵌套gridview的使用心得

在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中,不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动事件,导致只显示一到两行数据.那么就换一种思路,首先让子控件的内容全部显示出来,禁用了它的滚动.如果超过了父控件的范围则显示父控件的scrollbar滚动显示内容,思路是这样,一下是代码.具体的方法是自定义GridView组件,继承自GridView.重载onMeasure方法: public cla

Scrollerview与listview或者gridview发生冲突

滑动冲突说实在的就是子view的滑动事件与父view的滑动事件的监听都在同时触发,而导致的activity的点击事件或者布局出问题 常见的就有Scrollerview与Scrollerview与listview或者gridview发生冲突,listview是RecycleView等等的代表.话说,其中listview和scrollerview冲突的时候发生的问题比较奇葩 其中,listview只能显示一条数据我就震惊了,多方查询后才发现是冲突问题.(还是那句作为初学者,积少成多,提高解决问题速度