windows phone 8.1 通用应用程序中的 LongListMultiSelector 等价物

LongListMultiSelector equivalent in windows phone 8.1 universal app

当创建为通用应用程序时,windows phone 中的 LongListMultiSelector 等效于什么?

我只想在点击列表左侧时提供复选框,但我不知道该怎么做。

我试过使用 ListView,但要么始终显示复选框(SelectionMode=Multiple),要么从不显示(SelectionMode=None 或 Single),但这不是我想要的。

我应该以不同的方式处理吗?

我拥有的是列表和命令栏中的一堆位置,我有添加按钮,但我想让用户 select 在他们点击时显示一个或多个位置就像我在使用 LongListMultiSelector 时所做的那样,在一个项目的左侧,让他们编辑(当一个被 selected 时)或在多个被 selected 时删除,但是当点击时,它应该只打开相关位置.

我最近看到一个应用程序,其中添加的工作方式相同,但为了 view/edit/delete,用户 select 一个或多个项目,命令栏上的按钮变为查看 (一个 selected)、编辑 (一个 selected) 和删除 (多个 selected) 但我不确定我是否喜欢 "view" 选项,因为这需要2 个步骤因此更喜欢点击左侧内部以显示复选框并以这种方式提供 edit/delete。

谢谢

这是使用复选框选择多个列表项的基本框架。基本上你可以对每个列表框项目做任何你想做的事情。通过将数据绑定到复选框和复选框的内容。

然后由您决定如何实现导航、可见性或内容。

<ListBox x:Name="ListBox1" ItemsSource="{Binding}" SelectionMode="Multiple" >
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox x:Name="checkBox"  
                     IsChecked="{Binding MyBindingChecked}" 
                     Content="{Binding MyBindingText}"
                     Checked="Checked_Handler" 
                     Unchecked="Unchecked_Handler" 

使用这些方法,您可以实现导航等

// Handler for checked items.
private void Checked_Handler(object sender, RoutedEventArgs e)
{
    HandleChecked(sender as CheckBox);
}
// Handler for unchecking items.
Private void Unchecked_Handler(object sender, RoutedEventArgs e)
{
    HandleUnchecked(sender as CheckBox);
}
// Handle code for Checked handler.
private void HandleChecked(CheckBox checkBox)
    {// TODO
// Handle code for Unchecked handler.
private void HandleUnchecked(CheckBox checkBox)
    {// TODO

我在最近的项目中也需要它! 我找到的最佳解决方案是使用 QKit 库中的 MultiSelectListView

它在此处的 codedplex 上:https://qkit.codeplex.com/

控件说明:

虽然内置的 ListView 控件支持多选,但显示复选框的动画对 OS 而言并不令人愉快或不准确。使用 MultiSelectListView,动画和用户体验几乎与 OS 中的多选列表相同。不仅如此,此控件还允许您通过点击项目的左边缘来调用多选模式,就像在电子邮件应用程序中一样。