如标题所言,是做删除ListView绑定项的功能的;鉴于这个功能当时确实花费了很多时间,并且网上也找不到删除所需的案例,所以,我就做了一份案例,仅供各位前辈和同行进行参考,如有不当之处,还望指点,我将再接再励,下面进入正题:

  按照需求我们是需要实现的功能:点击删除的时候,把整个Items给移除,最初用listview.Items.RemoveAt(Listview.SelectedIndex)这样的方式来删除,调试的时候报“灾难性......”的错误,无奈我只能尝试listview.Items.Remove(Listview.SelectedItems)以及listview.Items.Remove(Listview.SelectedItem[0])等等方式,都不行,不是报灾难性的错误,就是没效果;当时头真的好疼,上网找资料,没有想要的,只能去向群里问大神,大神的想法及编码水平确实让我望尘莫及;但是,即便大神写的代码,也不能实现我想要的功能,只好继续想办法,借鉴c#的其它办法,如果是开发uwp的就知道,写uwp的C#和微软之前的C#有些许的不同,所以我只能继续尝试,后来终于想到,我直接操作绑定的通知列表不就可以了吗,操作完毕再重新绑定一次就好了啊,

  于是,功能就实现了,下面展示详细代码:

 <ListView x:Name="listView" Grid.Row=""
HorizontalAlignment="Center"
Margin="" VerticalAlignment="Center">
<ListView.Resources>
<Style TargetType="ListViewItem">
<Setter Property="Padding" Value=""></Setter>
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Grid Background="{TemplateBinding Background}">
<ContentPresenter
Content="{TemplateBinding Content}"
Margin="{TemplateBinding Padding}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.Resources>
<ListView.ItemTemplate>
<DataTemplate>
<RelativePanel MinWidth=""
MinHeight=""
CornerRadius=""
Margin=""
BorderBrush="Green"
BorderThickness="">
<TextBlock Name="tbName" RelativePanel.AlignLeftWithPanel="True"
Text="{Binding name}"></TextBlock>
<TextBlock RelativePanel.Below="tbName" Margin="0,5,0,0"
Text="{Binding sex}"></TextBlock>
<TextBlock Name="tbDelItem" VerticalAlignment="Center" RelativePanel.AlignRightWithPanel="True"
FontSize="" Text="" FontFamily="{StaticResource SymbolThemeFontFamily}"
Foreground="Red" Tapped="tbDelItem_Tapped"
RelativePanel.AlignVerticalCenterWithPanel="True"></TextBlock>
</RelativePanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

后台的也加上来:

 public sealed partial class MainPage : Page
{
ObservableCollection<Info> oc { get; set; } = new ObservableCollection<Info>();
public MainPage()
{
this.InitializeComponent();
} protected override void OnNavigatedTo(NavigationEventArgs e)
{ this.DataContext = this;
for (int i = ; i < ; i++)
{
oc.Add(new Info() { name="张三"+i, sex="男"+i});
}
listView.ItemsSource = oc;
} private void tbDelItem_Tapped(object sender, TappedRoutedEventArgs e)
{
//当我click目标对象的时候,就已经选中了对象所在的整个绑定对象,
//然后,移除通知列表ObservableCollection<Info>里面对应的对象
Info fn = listView.SelectedItem as Info;
oc.Remove(fn);
listView.ItemsSource = oc;
}
} public class Info
{
public string name { get; set; }
public string sex { get; set; }
public string hobby { get; set; } }

代码都已附上,就这样结束吧,如若有问题可以联系,qq:1358338055

istView的项移除的更多相关文章

  1. 算法练习之合并两个有序链表, 删除排序数组中的重复项,移除元素,实现strStr(),搜索插入位置,无重复字符的最长子串

    最近在学习java,但是对于数据操作那部分还是不熟悉 因此决定找几个简单的算法写,用php和java分别实现 1.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两 ...

  2. 【LeetCode】删除排序数组中的重复项&&移除特定元素【双指针,原地算法】

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...

  3. Java12新特性 -- 其他新增,移除,废弃项

    支持unicode 11 JDK 12版本包括对Unicode 11.0.0的支持.在发布支持Unicode 10.0.0的JDK 11之后,Unicode 11.0.0引 入了以下JDK 12中包含 ...

  4. java 11 移除的一些其他内容,更简化的编译运行程序,Unicode 10,移除了不太使用的JavaEE模块和CORBA技术,废除Nashorn javascript引擎,不建议使用Pack200 相关api

    移除的一些其他内容 移除项 移除了com.sun.awt.AWTUtilities 移除了sun.misc.Unsafe.defineClass, 使用java.lang.invoke.MethodH ...

  5. 安卓Listview 不规则项即不同item的运行

    在安卓中,listview  的item 是一个不断被轮询调换位置的过程,这样 即 图片参考地址   http://www.cnblogs.com/mybkn/archive/2012/05/23/2 ...

  6. 两种方法直接删除数组中特定值的项(JavaScript)

    一.问题详情: 直接删除意为原数组需要被改变,而不是得到另一个数组. 二.JavaScript实现 (一)巧用数组的push( ).shift( )方法 function del(arr,num) { ...

  7. C# - 集合类

    C#的集合类命名空间介绍: // 程序集 mscorlib.dll System.dll System.Core.dll // 命名空间 using System.Collections:集合的接口和 ...

  8. python序列,字典备忘

    初识python备忘: 序列:列表,字符串,元组len(d),d[id],del d[id],data in d函数:cmp(x,y),len(seq),list(seq)根据字符串创建列表,max( ...

  9. swift学习笔记1——基础部分

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

随机推荐

  1. 编程语言 IDE 对比

    IDE是集成开发环境的英文缩写,所谓集成开发环境,就是将你在开发过程中所需要的工具或功能集成到了一起,比如代码编写.分析.编译.调试等功能,从而最大化地提高开发者的工作效率. 每种编程语言都有一些特定 ...

  2. Android开发(三十二)——延时

    模拟延时 private class GetDataTask extends AsyncTask<Void, Void, String[]> { @Override protected S ...

  3. Html5 localstorage解决Ajax回退的坑

    A页面通过ajax加载数据,并且是滚动加载效果,当滚动几个屏幕之后,进入新的链接页面B,再返回到A的时候,A页面的数据有需要重新加载,从头开始了,体验非常不好. 解决办法:1)hash:2)html5 ...

  4. 99 Lisp Problems 列表处理(P1~P28)

    L-99: Ninety-Nine Lisp Problems 列表处理类问题的解答,用Scheme实现,首先定义几个在后续解题中用到的公共过程: ; common procedure (define ...

  5. 旧文—冬日感怀

    冬日感怀   下雪了,虽不大,可那雪花落在手上,融在心里,便泛起淡淡的温柔,因为这是冬日的馈赠啊,是上苍的礼物,是往昔记忆的灰烬化作天地间的精灵装点纷繁琐碎的世界.于是,透过汽车上雾气氤氲的玻璃窗,人 ...

  6. 为Eclipse添加Java和Android SDK源代码

    1.添加jdk源码进入eclipse Ctrl + Click -->Attached Source 路径:D:\Program Files\Java\jdk1.8.0_45\src.zip 2 ...

  7. java nio 网络框架实现

    maven项目 https://github.com/solq360/common 链式编/解码 链路层链式处理 管道管理socket 多协议处理非常方便 仿netty NioEventLoop 单线 ...

  8. C# 通过WebService方式 IIS发布网站 上传文件到服务器

    应用场景:要将本地的文件 上传到服务器的虚拟机上 网络环境:公司局域网(如下图中第二种) 开发环境:VS2010 服务器环境:WinServer2008    虚拟机环境:WinServer2008 ...

  9. SuperSocket 1.6.4 通过FixedHeaderReceiveFilter解析自定义协议

    SuperSocket 提供了一些通用的协议解析工具, 你可以用他们简单而且快速的实现你自己的通信协议: TerminatorReceiveFilter (SuperSocket.SocketBase ...

  10. Nightwatch.js – 轻松实现浏览器的自动测试

    Nightwatch.js 是一个易于使用的,基于 Node.js 平台的浏览器自动化测试解决方案.它使用强大的 Selenium WebDriver API 来在 DOM 元素上执行命令和断言. 语 ...