当前位置:编程学习 > wap >>

Windows Phone 7 LongListSelector控件实现分类列表和字母索引

在wp7手机里面的联系人列表和程序里面里面我们可以看到一个根据字母索引来定位联系人或者应用程序的控件,那么这个控件就是LongListSelector控件了。

LongListSelector是一种比ListBox更加强大的列表控件,你可以根据你列表的信息来分类排列,根据类别快速定位到你选中的类别的列表下,在数据量很大的情况下这种分类的优势很明显。LongListSelector可以自定义列表头,列表尾、类表头、列别尾等的样式和数据,可以实现各种个性化的列表样式和不同的数据的展现方式。Windows Phone 7手机的联系人列表就是基于LongListSelector控件设计的。LongListSelector控件的常用属性和常用事件分别如表12.6和表12.7所示。

                       表12.6 LongListSelector控件常用属性

 

名称 说明
DisplayAllGroups bool类型的属性,当值为true时,它显示所有的分组无论该组中是否有选项或者数据,默认值为false。
GroupFooterTemplate DataTemplate类型的属性,它是负责绑定每个组的底部的数据和样式的模板。
GroupHeaderTemplate DataTemplate类型的属性,它是负责绑定每个组的顶部的数据和样式的模板。
GroupItemsPanel ItemsPanelTemplate类型的属性,设置组的内部的Panel面板的内容。
GroupItemTemplate DataTemplate类型的属性,它是负责绑定每个组里面的元素的数据和样式的模板。
ItemTemplate DataTemplate类型的属性,它是负责绑定所有选项或者元素的数据和样式的模板。
ListFooterTemplate DataTemplate类型的属性,它是负责绑定整个List底部的数据和样式的模板。
ListHeaderTemplate DataTemplate类型的属性,它是负责绑定整个List顶部的数据和样式的模板。
SelectedItem 获取或者设置选中的选项
ShowListFooter bool类型的属性,是否显示列脚,默认值为true。
ShowListHeader bool类型的属性,是否显示列头,默认值为true。
 
表12.7 LongListSelector控件常用事件
名称 说明
Link 当查找的内容被找到时,触发的事件。
用法示例:
selector.Link += new   EventHandler<LinkUnlinkEventArgs>(selector_Link);
void selector_Link(object sender,   LinkUnlinkEventArgs e) {...}
Unlink 查找的内容没有被找到时,触发的事件。
用法示例:
selector.Unlink += new
 EventHandler<LinkUnlinkEventArgs>(selector_Unlink);  
void selector_Unlink(object sender,   LinkUnlinkEventArgs e) {... }
SelectionChanged   选择的选项改变时触发的事件。
用法示例:
selector.SelectionChanged += new
SelectionChangedEventHandler(selector_SelectionChanged);
void selector_SelectionChanged(object sender,   SelectionChangedEventArgs e)  {... }
ScrollingCompleted  当列表滚动结束的时候触发的事件。
用法示例:
selector.ScrollingCompleted += new
 EventHandler(selector_ScrollingCompleted);
void selector_ScrollingCompleted(object   sender, EventArgs e) {...}
ScrollingStarted 当列表滚动开始的时候触发的事件。
用法示例:
selector.ScrollingStarted += new   EventHandler(selector_ScrollingStarted);
void selector_ScrollingStarted(object   sender, EventArgs e){...} 
下面给出列表选择框的示例:演示如何使用LongListSelector控件进行列表信息分类。
代码清单12-6:列表选择框(源代码:第12章\Examples_12_6)
MainPage.xaml文件主要代码
  

  <phone:PhoneApplicationPage.Resources>
        <!—定义组头绑定模板-->
        <DataTemplate x:Key="GroupHeader">
            <Border Background="{StaticResource PhoneAccentBrush}" Margin="{StaticResource PhoneTouchTargetOverhang}" Padding="{StaticResource PhoneTouchTargetOverhang}">
                <TextBlock Text="{Binding Key}"/>
            </Border>
        </DataTemplate>
        <!—定义组选项绑定模板-->
        <DataTemplate x:Key="GroupItem">
            <Border Background="{StaticResource PhoneAccentBrush}" Margin="{StaticResource PhoneTouchTargetOverhang}" Padding="{StaticResource PhoneTouchTargetOverhang}">
                <TextBlock Text="{Binding Key}" Style="{StaticResource PhoneTextLargeStyle}"/>
            </Border>
        </DataTemplate>
        <!—定义列头绑定模板-->
        <DataTemplate x:Key="ListHeader">
            <TextBlock Text="Header" Style="{StaticResource PhoneTextTitle1Style}"/>
        </DataTemplate>
         <!—定义列表选项绑定模板-->
        <DataTemplate x:Key="ItemTmpl">
            <Grid>
                <TextBlock Text="{Binding Title}"></TextBlock>
            </Grid>
        </DataTemplate>
    </phone:PhoneApplicationPage.Resources>
    ……
        <!--添加LongListSelector控件-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
            <toolkit:LongListSelector x:Name="LongList" Background="Transparent"
                    ItemTemplate="{StaticResource ItemTmp

补充:移动开发 , Windows Phone ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,