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 中的多选列表相同。不仅如此,此控件还允许您通过点击项目的左边缘来调用多选模式,就像在电子邮件应用程序中一样。
当创建为通用应用程序时,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 中的多选列表相同。不仅如此,此控件还允许您通过点击项目的左边缘来调用多选模式,就像在电子邮件应用程序中一样。