最近在做一个项目的时候,用到了Listview,需要选择一个item,来进行删除。

但是当开启了

PullToRefreshListViewControl.IsMultiSelectCheckBoxEnabled = true;
PullToRefreshListViewControl.SelectionMode = ListViewSelectionMode.Multiple;

点击Item还是进入了Listview的Click事件。。。。。。

这里我们就需要用到一个小技巧了,顶一个一个全局变量 bool bMultiSelect = false;

最终效果

在Click事件中,判断是不是多选即可。

现在在xaml中定义三个button,实际工作不需要这么多,我这方便说明演示

一个是开启多选模式,一个是取消多选模式,最后是删除事件

<Button Content="MultiSelect" Click="MultiSelectClick"/>
<Button Content="CancelMultiSelect" Click="CancelMultiSelectClick"/>
<Button Content="DeleteSelected" Click="DeleteSelectedClick"/>

对应的后台code

     private void MultiSelectClick(object sender, RoutedEventArgs e)
{
bMultiSelect = true;
PullToRefreshListViewControl.IsMultiSelectCheckBoxEnabled = true;
PullToRefreshListViewControl.SelectionMode = ListViewSelectionMode.Multiple;
} private void CancelMultiSelectClick(object sender, RoutedEventArgs e)
{
bMultiSelect = false;
PullToRefreshListViewControl.IsMultiSelectCheckBoxEnabled = false;
PullToRefreshListViewControl.SelectionMode = ListViewSelectionMode.None;
} private async void DeleteSelectedClick(object sender, RoutedEventArgs e)
{
if (PullToRefreshListViewControl.SelectedItems.Count == )
{
Debug.WriteLine("No items selected");
return;
} for (int i = PullToRefreshListViewControl.SelectedItems.Count - ; i >= ; i--)
{
FaceSet fs = PullToRefreshListViewControl.SelectedItems[i] as FaceSet;
await FacePlusPlusHelper.DeletePersoninCloud(fs.FaceSetToken, fs.OuterId);
SampleItems.Remove(fs);
} if (SampleItems.Count == )
{
bMultiSelect = false;
PullToRefreshListViewControl.IsMultiSelectCheckBoxEnabled = false;
PullToRefreshListViewControl.SelectionMode = ListViewSelectionMode.None;
}
}

然后在Listview的点击事件中屏蔽一下即可

private async void PullToRefreshListViewControl_ItemClick(object sender, ItemClickEventArgs e)
{
  if(bMultiSelect)
    return;   //然后这里写单击item的代码咯
}

o, 对了,PullToRefreshListViewControl是Listview控件。

UWP Listview 多选的更多相关文章

  1. ListView多选操作模式详解CHOICE_MODE_MULTIPLE与CHOICE_MODE_MULTIPLE_MODAL

    这篇文章我们将详细的介绍如何实现ListView的多选操作,文中将会纠正在使用ListViewCHOICE_MODE_MULTIPLE或者CHOICE_MODE_MULTIPLE_MODAL时容易犯的 ...

  2. listview改变选中行字体颜色

    [android]listview改变选中行字体颜色 目标:选中item,其字体设置为#3197FF,未选中的,其字体为#FFFFFF 与listvew设置选中行item背景图片一样,使用select ...

  3. Android实战之ListView复选框

    项目中有用到复选框的例子,啊啊......在网上查找有关资料,大多都是过于繁琐,所以自己决定写个这个方面的demo... 先给个效果图: 在ListView中添加复选框主要注意以下几个问题: 1.Li ...

  4. 【android】listview改变选中行背景图片

    [android]listview改变选中行背景图片 目标:当item选中时,改变其背景图片.效果图如下: 直接在listview的xml文件中使用listselector: 1 2 3 4 5 6 ...

  5. ListView多选操作模式——上下文操作模式

    1.什么叫上下文操作模式 2.如何进入上下文操作模式 1.ListView自身带了单选.多选模式,可通过listview.setChoiceMode来设置: listview.setChoiceMod ...

  6. uwp ListView列表滑动特效

    在看过一篇文章 WPF自定义控件之列表滑动特效 PowerListBox  http://www.cnblogs.com/ShenNan/p/4993374.html#3619585 实现了滑动的特效 ...

  7. ListView多选和单选模式重新整理

    超简单的单选和多选ListView 在开发过程中,我们经常会使用ListView去呈现列表数据,比如商品列表,通话记录,联系人列表等等,在一些情况下,我们还需要去选择其中的一些列表数据进行编辑.以前, ...

  8. UWP ListView嵌套ListView

    要求:加载全部的订单,每个订单里面有一个或者多个产品,在列表中要展现出来, 1. xaml界面 步骤:1.这里使用的是x:bind绑定所以要引入实体类命名空间(OrderList集合中类的命名空间): ...

  9. UWP ListView添加不同样式

    先看效果: 使用ListView的ItemTemplateSelector <ListView IsItemClickEnabled="True" ItemContainer ...

随机推荐

  1. 使用angular4和asp.net core 2 web api做个练习项目(二), 这部分都是angular

    上一篇: http://www.cnblogs.com/cgzl/p/7755801.html 完成client.service.ts: import { Injectable } from '@an ...

  2. JPA的一对多映射(双向)关联

    实体Customer:用户. 实体Order:订单. Customer和Order是一对多关系.那么在JPA中,如何表示一对多的双向关联呢? JPA使用@OneToMany和@ManyToOne来标识 ...

  3. 机器学习之三:logistic回归(最优化)

    一般来说,回归不用在分类问题上,因为回归是连续型模型,而且受噪声影响比较大.如果非要应用进入,可以使用logistic回归. logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函 ...

  4. AngularJS学习篇(十七)

    AngularJS 输入验证 <!DOCTYPE html> <html> <script src="http://apps.bdimg.com/libs/an ...

  5. OOA、OOD、OOP分别是什么?

    什么是面向对象分析(OOA)? "面向对象分析是一种分析方法,这种方法利用从问题域的词汇表中找到的类和对象来分析需求." 什么是面向对象设计(OOD)? "面向对象设计是 ...

  6. redhat7 Samba

    1.先安装Samba服务 yum install -y samba samba-client 2.配置文件 vi /etc/samba/smb.conf  --主配置文件 [global]  --全局 ...

  7. js数组元素的添加和删除

    简单测试例子: var arr = new Array(); arr[0] = "aaa"; arr[1] = "bbb"; arr[2] = "cc ...

  8. Golang源码探索(二) 协程的实现原理

    Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱, 虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻 ...

  9. NFS服务器的安装与配置

    由于实验室的项目需要实现在CephFS之上建立NFS之上,所以记录一下NFS服务器的安装与配置流程. 1.NFS服务的简介: NFS 是 Network File System 的缩写,是Sun公司于 ...

  10. WPF 完美截图 <二>

    根据WPF 完美截图 <一>总结: 1.BitmapSource与BitmapImage及CorppedBitmap之间的转换 2.中心及边角的模板实现及其拖动 3.除了拖动矩形外区域要实 ...