2013-01-02 48 views
4

在我的WP8应用程序中,我想实现与标准邮件应用程序中的功能非常类似的功能 - 用户可以从列表中选择多个项目。我提供了一些截图来说明这个问题:实现具有多项选择的项目列表

正常状态:
Normal state

用户点击项目的左上角,并变成蓝色: User taps item's left corner and it becomes blue

项目被选中
Item is selected

我的问题是如果这种多重选择能力是一些容器控制的标准选项,或者如果我应该做一些自定义编程请点这个?在后一种情况下,您最好采取什么措施来实现这一点,请分享您的想法。

+0

Anton,我完全和你有相同的要求,我需要在给定的listview中的复选框上执行show hide动画。 Pl分享,如果你已经想出了一个解决方案 – 2014-09-01 07:52:47

回答

11

对于WP8多项选择你需要使用Windows Phone Toolkit的LongListMultiSelector。

你可以找到关于如何使用LongListMultiSelector here(和here代码背后)的代码示例。以下是相关的XAML代码片段:

<phone:PivotItem x:Name="BuddiesPivotItem" Header="Std longlistmultiselector"> 
     <toolkit:LongListMultiSelector x:Name="buddies" Background="Transparent" 
       Margin="0,-8,0,0" 
       ItemsSource="{StaticResource buddies}" 
       LayoutMode="List" 
       IsGroupingEnabled="True" 
       HideEmptyGroups="True" 
       JumpListStyle="{StaticResource BuddiesJumpListStyle}" 
       GroupHeaderTemplate="{StaticResource BuddiesGroupHeaderTemplate}" 
       ItemTemplate="{StaticResource BuddiesItemTemplate}" 
    /> 
    </phone:PivotItem> 

    <phone:PivotItem x:Name="GridModeItem" Header="Grid mode"> 
     <toolkit:LongListMultiSelector x:Name="GridSelector" 
       ItemsSource="{StaticResource PicturesAlbum}" 
       IsGroupingEnabled="False" 
       GridCellSize="210,180" 
       LayoutMode="Grid" 
       HideEmptyGroups="True" 
       ItemTemplate="{StaticResource PictureItemTemplate}" 
       IsSelectionEnabledChanged="OnGridSelectorIsSelectionEnabledChanged" 
       SelectionChanged="OnGridSelectorSelectionChanged" 
     /> 
    </phone:PivotItem> 

当您运行这些代码片断中可以看到以下内容:

LongListMutliSelector print screen

你可以阅读更多有关Windows Phone 8的工具包here

+0

这太棒了,谢谢! – Anton

2

的LonglistmultiSelector在我的工具箱失踪..

如果我运行下面的代码:

<toolkit:LongListMultiSelector x:Name="EmailList" 
               Margin="0,14,-12,0" 
               ItemsSource="{StaticResource EmailCollection}" 
               LayoutMode="List" 
               SelectionChanged="OnEmailListSelectionChanged" 
                  IsSelectionEnabledChanged="OnEmailListIsSelectionEnabledChanged" 
               ItemTemplate="{StaticResource EmailItemTemplate}" 
               ItemInfoTemplate="{StaticResource EmailItemInfoTemplate}" 
      /> 

如果出现错误: 错误1名“LongListMultiSelector”并不在命名空间中“CLR-名称空间:Microsoft.Phone.Controls;装配= Microsoft.Phone.Controls.Toolkit”。

+0

也许你必须加入MainPage.xaml中的顶部其他xmlns声明中以下行: 的xmlns:工具=“CLR的命名空间:Microsoft.Phone.Controls;装配= Microsoft.Phone.Controls.Toolkit” – triandicAnt