windows phone 8.1 listbox 分組顯示

來源:互聯網
上載者:User

標籤:des   style   blog   http   io   ar   使用   for   sp   

初次瞭解list分組的朋友可以先看看,如下連結!
http://www.cnblogs.com/linzheng/archive/2014/09/28/3999217.html

連結的內容 只是介紹了基本雛形,我下面把我個人的一些修改加了進去,
希望能對大家有所協助! 如果發現我哪有不足,請提出,相互交流才可以更好的進步

.xaml  代碼

  1. <!--分組 縮減list 背景顏色-->
  2.     <Page.Resources>
  3.         <prim:JumpListItemBackgroundConverter x:Key="BackgroundConverter"  Enabled="#FF0086D0" Disabled="{ThemeResource ContentDialogDimmingThemeBrush}"/>
  4.         <prim:JumpListItemForegroundConverter x:Key="ForegroundConverter"/>
  5.     </Page.Resources>

  6.     <Grid>
  7.         <Grid.Resources>
  8.             <!--建立資料來源對象,注意ItemContent屬性就是資料來源中真正的基礎資料的列表的屬性,必須設定該屬性的值資料來源才能定位到實際繫結資料實體物件-->
  9.             <CollectionViewSource x:Name="itemcollectSource" IsSourceGrouped="true" ItemsPath="InternalList" />
  10.         </Grid.Resources>
  11.         <SemanticZoom x:Name="semanticZoom">
  12.             <SemanticZoom.ZoomedInView>
  13.                 <!-- 在這裡放置GridView(或ListView)以表示放大視圖 -->
  14.                 <ListView x:Name="inView">
  15.                     <ListView.GroupStyle>
  16.                         <GroupStyle HidesIfEmpty="True">
  17.                             <!--用於顯示列表頭的資料項目的模板-->
  18.                             <GroupStyle.HeaderTemplate >
  19.                                 <DataTemplate>
  20.                                     <Border Background="#FF0086D0" Height="50" Width="50">

  21.                                         <TextBlock Text="{Binding Key}" FontSize="37.333" Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  22.                                     </Border>
  23.                                 </DataTemplate>
  24.                             </GroupStyle.HeaderTemplate>
  25.                         </GroupStyle>
  26.                     </ListView.GroupStyle>
  27.                     <!--用於顯示列表的資料項目的模板-->
  28.                     <ListView.ItemTemplate>
  29.                         <DataTemplate>
  30.                             <StackPanel>
  31.                                 <TextBlock Text="{Binding Title}" Height="40" FontSize="30"></TextBlock>
  32.                             </StackPanel>
  33.                         </DataTemplate>
  34.                     </ListView.ItemTemplate>
  35.                 </ListView>
  36.             </SemanticZoom.ZoomedInView>
  37.             <SemanticZoom.ZoomedOutView>
  38.                 <!-- 在這裡放置GridView(或ListView)以表示縮小視圖 -->
  39.                 <GridView x:Name="outView" Background="#7F000000" Margin="0,10,0,0">
  40.                     <!--用於顯示彈出的分組列表視圖的資料項目的模板-->
  41.                     <GridView.ItemTemplate>
  42.                         <DataTemplate>
  43.                             <Grid Width="90" Height="90">
  44.                                 <Border Background="{Binding Converter={StaticResource BackgroundConverter}}" Margin="0,10,10,0" >
  45.                                     <TextBlock Text="{Binding Group.Key}" FontSize="37.333" HorizontalAlignment="Left" VerticalAlignment="Bottom"
  46.                                                Foreground="{Binding Converter={StaticResource ForegroundConverter}}"/>
  47.                                 </Border>
  48.                             </Grid>
  49.                         </DataTemplate>
  50.                     </GridView.ItemTemplate>
  51.                 </GridView>
  52.             </SemanticZoom.ZoomedOutView>
  53.         </SemanticZoom>
  54.     </Grid>
複製代碼

,cs 代碼


  1. public void fun()
  2.         {
  3.             this.InitializeComponent();
  4.             // 先建立一個普通的資料集合
  5.             List<Item> mainItem = new List<Item>();
  6.             for (int i = 0; i < 10; i++)
  7.             {
  8.                 mainItem.Add(new Item { Content = "A", Title = "Test A" + i });
  9.                 mainItem.Add(new Item { Content = "B", Title = "Test B" + i });
  10.                 mainItem.Add(new Item { Content = "C", Title = "Test C" + i });

  11.                 mainItem.Add(new Item { Content = "D", Title = "Test A" + i });
  12.                 mainItem.Add(new Item { Content = "F", Title = "Test B" + i });
  13.                 mainItem.Add(new Item { Content = "G", Title = "Test C" + i });

  14.                 mainItem.Add(new Item { Content = "C", Title = "Test C" + i });
  15.                 mainItem.Add(new Item { Content = "C", Title = "Test C" + i });
  16.                 mainItem.Add(new Item { Content = "C", Title = "Test C" + i });

  17.                 mainItem.Add(new Item { Content = "H", Title = "Test A" + i });
  18.                 mainItem.Add(new Item { Content = "I", Title = "Test B" + i });
  19.                 mainItem.Add(new Item { Content = "M", Title = "Test C" + i });

  20.                 mainItem.Add(new Item { Content = "N", Title = "Test A" + i });
  21.                 mainItem.Add(new Item { Content = "O", Title = "Test B" + i });
  22.                 mainItem.Add(new Item { Content = "P", Title = "Test C" + i });

  23.                 mainItem.Add(new Item { Content = "Q", Title = "Test A" + i });
  24.                 mainItem.Add(new Item { Content = "R", Title = "Test B" + i });
  25.                 mainItem.Add(new Item { Content = "S", Title = "Test C" + i });

  26.                 mainItem.Add(new Item { Content = "T", Title = "Test A" + i });
  27.                 mainItem.Add(new Item { Content = "W", Title = "Test B" + i });
  28.                 mainItem.Add(new Item { Content = "V", Title = "Test C" + i });

  29.                 mainItem.Add(new Item { Content = "U", Title = "Test A" + i });
  30.                 mainItem.Add(new Item { Content = "X", Title = "Test B" + i });
  31.                 mainItem.Add(new Item { Content = "Y", Title = "Test C" + i });
  32.                 mainItem.Add(new Item { Content = "Z", Title = "Test C" + i });
  33.             }
  34.             // 使用LINQ文法把普通的資料集合轉換成分組的資料集合
  35.             //List<ItemInGroup> Items = (from item in mainItem group item by item.Content into newItems select new ItemInGroup { Key = newItems.Key, ItemContent = newItems.ToList() }).ToList();

  36.             List<AlphaKeyGroup<Item>> Items = AlphaKeyGroup<Item>.CreateGroups(
  37.                                                                                         mainItem,
  38.                                                                                         (Item s) => { return s.Title; },
  39.                                                                                         true);

  40.             // 設定CollectionViewSource對象的資料來源
  41.             this.itemcollectSource.Source = Items;
  42.             // 分別對兩個視圖進行綁定
  43.             outView.ItemsSource = itemcollectSource.View.CollectionGroups;
  44.             inView.ItemsSource = itemcollectSource.View;
  45.         }
  46.     }
  47.     // 分組的實體類,也就是分組的資料集合最外面的資料項目的實體類
  48.     public class ItemInGroup
  49.     {
  50.         // 分組的組頭屬性
  51.         public string Key { get; set; }
  52.         // 分組的資料集合
  53.         public List<Item> ItemContent { get; set; }
  54.     }
  55.     // 列表的資料實體類
  56.     public class Item
  57.     {
  58.         public string Title { get; set; }
  59.         public string Content { get; set; }
  60.     }
複製代碼

windows phone 8.1 listbox 分組顯示

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.