【问题标题】:Implement items list with multiple selection实施具有多项选择的项目列表
【发布时间】:2012-12-17 06:00:27
【问题描述】:

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

正常状态:

用户点击项目的左角,它变成蓝色:

项目被选中

我的问题是,这种多选功能是否是某些容器控件的标准选项,或者我是否应该进行一些自定义编程来实现这一点?在后一种情况下,您将采取什么最佳方法来实现这一点,请分享您的想法。

【问题讨论】:

  • Anton,我的要求与您的要求完全相同,我需要在给定列表视图中的复选框上执行显示隐藏动画。如果您找到解决方案,请分享

标签: xaml user-interface windows-phone-8 multipleselection


【解决方案1】:

对于 WP8 多选,您需要使用 Windows Phone Toolkit 的 LongListMultiSelector。

您可以找到有关如何使用 LongListMultiSelector here 的代码示例(以及后面的代码 here)。以下是相关的 XAML 代码 sn-ps:

    <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>

当你运行这些代码sn-p你可以看到如下:

您可以阅读有关 Windows Phone 8 工具包here 的更多信息。

【讨论】:

    【解决方案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 ​​命名空间“clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit”中不存在名称“LongListMultiSelector”。

    【讨论】:

    • 也许您必须在 MainPage.xaml 顶部的其他 xmlns 声明中添加以下行:xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone。 Controls.Toolkit"
    猜你喜欢
    • 1970-01-01
    • 2014-01-23
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多