ObservableCollection CollectionChanged 事件

2024-04-17

我有一个可观察的集合,并且在其上连接了一个 collectionChanged 事件。 我将其项目绑定到用户界面中的列表框。 当用户从列表框中删除 UI 中的某些项目时,CollectioChanged 会正确触发,但是,我需要知道已删除项目的索引。 问题是我无法在更改后对集合进行索引,因为它不再具有已删除的项目。

我们可以通过 collectionchanged 事件访问从 ObservableCollection 中删除的索引列表吗?


The CollectionChanged http://msdn.microsoft.com/en-us/library/ms653375.aspx事件使用一个事件,给你一个NotifyCollectionChangedEventArgs http://msdn.microsoft.com/en-us/library/system.collections.specialized.notifycollectionchangedeventargs.aspx。这有一个OldStartingIndex属性,它会告诉您它被删除的索引。例如:

void Foo()
{
    ObservableCollection<string> r = new ObservableCollection<string>();
    r.CollectionChanged += r_CollectionChanged;
}

static void r_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
    var itemRemovedAtIndex = e.OldStartingIndex;
}

假设我要从集合中不同索引处删除多个项目。因此,使用 oldStartingIndex 只会给我第一个被删除的项目索引

该事件很可能会触发多次,每个项目一次。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ObservableCollection CollectionChanged 事件 的相关文章

  • 如何进行带有偏差的浮点舍入(始终向上或向下舍入)?

    我想以偏置舍入浮动 要么总是向下 要么总是向上 代码中有一个特定的点 我需要这个 程序的其余部分应该像往常一样四舍五入到最接近的值 例如 我想四舍五入到最接近的 1 10 倍数 最接近 7 10 的浮点数约为 0 69999998807 但
  • 当我单击 C# 中的“取消”按钮时重定向到新页面(Web 部分)

    Cancel button tc new TableCell btnCancel new Button btnCancel Text Cancel btnCancel Click new EventHandler btnCanel Clic
  • 在 OpenCL 中将函数作为参数传递

    是否可以在 OpenCL 1 2 中将函数指针传递给内核 我知道可以用C实现 但不知道如何在OpenCL的C中实现 编辑 我想做这篇文章中描述的同样的事情 在 C 中如何将函数作为参数传递 https stackoverflow com q
  • 通信对象 System.ServiceModel.Channels.ServiceChannel 不能用于通信

    通信对象System ServiceModel Channels ServiceChannel 无法用于通信 因为它处于故障状态 这个错误到底是什么意思 我该如何解决它 您收到此错误是因为您让服务器端发生 NET 异常 并且您没有捕获并处理
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 如何在 VS 中键入时显示方法的完整文档?

    标题非常具有描述性 是否有任何扩展可以让我看到我正在输入的方法的完整文档 我想查看文档 因为我可以在对象浏览器中看到它 其中包含参数的描述和所有内容 而不仅仅是一些 摘要 当然可以选择查看所有覆盖 它可能是智能感知的一部分 或者我不知道它并
  • 为什么 std::allocator 在 C++17 中丢失成员类型/函数?

    一边看着std 分配器 http en cppreference com w cpp memory allocator 我看到成员 value type pointer const pointer reference const refer
  • 单元测试失败,异常代码为 c0000005

    我正在尝试使用本机单元测试项目在 Visual Studios 2012 中创建单元测试 这是我的测试 TEST METHOD CalculationsRoundTests int result Calculations Round 1 0
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • std::bind 重载解析

    下面的代码工作正常 include
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • Fluent NHibernate 日期时间 UTC

    我想创建一个流畅的 nhibernate 映射来通过以下方式映射 DateTime 字段 保存时 保存 UTC 值 读取时 调整为本地时区值 实现此映射的最佳方法是什么 就我个人而言 我会将日期存储在 UTC 格式的对象中 然后在读 写时在
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • boost::program_options:带有固定和可变标记的参数?

    是否可以在 boost program options 中使用此类参数 program p1 123 p2 234 p3 345 p12 678 即 是否可以使用第一个标记指定参数名称 例如 p 后跟一个数字 是动态的吗 我想避免这种情况
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据

随机推荐

  • WPF查找控件

    我在 WPF 页面上用过程代码创建了一个网格 现在我想引用该网格 Grid grid Grid This FindName myGridName 不起作用 有想法吗 当您在代码中创建元素时 还需要调用 RegisterName 方法以允许
  • 使用 jQuery AJAX 从 Laravel 5 中的联系表单发送电子邮件

    我在 Laravel Blade 中有联系表 div ul foreach errors gt all as error li error li endforeach ul Form open array route gt contact
  • Python有字符串“包含”子字符串的方法吗?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我正在寻找一个string contains or string indexofPyth
  • 如何使用 API 创建 GitHub Gist?

    通过查看 GitHub Gist API 我了解到可以为匿名用户创建 Gist 而无需任何 API 密钥 身份验证 是这样吗 我找不到以下问题的答案 创建时是否有任何限制 要点数量 等 有没有任何示例可以让我从表单文本输入字段发布代码来创建
  • pandas.to_datetime 时间字符串格式不一致

    我正在尝试转换 a 的索引pandas DataFrame从字符串格式到日期时间索引 使用pandas to datetime 导入熊猫 In 1 import pandas as pd In 2 pd version Out 2 0 10
  • size_t 是字长吗?

    Is size t编译代码的机器的字长 用 g 解析 我的编译器视图size t as an long unsigned int 编译器内部是否选择大小size t or is size t实际上是在某些预处理器宏中的 typedefstd
  • 如何解析此 Flickr 响应?

    我从 Flickr 的 api 站点中的示例响应中得到了这一点 jsonFlickrApi method content flickr test echo format content json api key content 8038f7
  • Play框架2.0.1不断尝试演化出错误的数据库类型

    我正在开发部署在 openshift DIY 应用程序上的 play 2 0 1 应用程序 我在数据库方面遇到了麻烦 因为游戏一直试图发展错误的数据库 我有一个 mysql 数据库 并且 play 创建一个 H2 数据库演化脚本 这是脚本
  • 将 uri 保存到共享首选项并使用媒体播放器播放

    这是我用来将 Uri 的字符串表示形式保存到 SharedPreferences 的代码 public void onActivityResult int requestCode int resultCode Intent data sup
  • Java 8 中使用了哪个 JAXB 版本?

    JAXB Java Architecture for XML Binding 已作为 Maven 工件发布 尽管它在 Java 8 以及具有选项的 Java 9 10 之前与 JRE 捆绑在一起 我的问题是 Maven Central 上的
  • 计算时间长

    这是我上一个问题的链接 它引导我找到了这个问题 C 嵌套 foreach 循环优化 https stackoverflow com questions 7729231 c nested foreach loop optimization 计
  • 为什么服务器控件在放置在内容标记内时会带有下划线?

    我有一个网络内容表单 其中包含Div以及各种服务器控件 例如DropDownList 当我运行该应用程序时 它运行良好 没有任何错误 但当我查看 HTML 源代码时 服务器控件带有红色下划线 将鼠标移过来时 说 DropDownList 会
  • Visual C# 2010 Express:为新类指定默认访问修饰符?

    每当我使用 Visual Studio 2010 Express C 创建新类时 它都会创建不带访问修饰符的新类 十分之九我希望我的新课程公开 如何让 Visual Studio 默认创建带有 public 修饰符的空类模板 诀窍是创建一个
  • 删除 numpy 数组的重复行[重复]

    这个问题在这里已经有答案了 如何删除二维的重复行numpy array data np array 1 8 3 3 4 1 8 9 9 4 1 8 3 3 4 答案应该如下 ans array 1 8 3 3 4 1 8 9 9 4 如果有
  • HSQLDB服务器模式用户名/密码

    如果我使用 Java 代码在服务器模式下启动 HSQLDB 则服务器启动不会出现任何问题 但是 当我尝试通过 Java 代码或通过 HSQLDB DatabaseManagerSwing 连接到相同的数据库时 我无法连接 我在仅内存模式下使
  • 通过API服务端点消费来自Kafka主题的消息

    目前 我有一个 API 服务端点 用 netcore6 C 编写 它将接受消息对象并将其保存到数据库 然后将该消息发布到 kafka topic 2 如何利用我的 API 服务端点始终监听 观看并连接到 kafka topic 1 一旦新消
  • 为什么`从. importviews`可以解决Flask中的循环导入吗? [复制]

    这个问题在这里已经有答案了 我从中学习更大的应用 http flask pocoo org docs 0 10 patterns packages 在这个文档中 它说 所有视图函数 顶部带有route 装饰器的函数 都必须导入到init p
  • NAudio - 更改缓冲麦克风音频的音高并发送到虚拟音频线

    我决定尝试使用 NAudio 和虚拟音频线创建一个与 Discord 或类似软件 一起使用的音板 我能够将音频从麦克风 注入 到音频电缆 这样我就可以通过选择虚拟音频电缆作为 Discord 中的输入设备来播放声音文件和麦克风音频到 Dis
  • 在类中初始化 static struct tm

    我想使用 tm 结构作为类中的静态变量 花了一整天的时间阅读和尝试 但它仍然无法工作 如果有人能指出我做错了什么 我将不胜感激 在我的课堂上 在公共下 我将其声明为 static struct tm dataTime 在main cpp中
  • ObservableCollection CollectionChanged 事件

    我有一个可观察的集合 并且在其上连接了一个 collectionChanged 事件 我将其项目绑定到用户界面中的列表框 当用户从列表框中删除 UI 中的某些项目时 CollectioChanged 会正确触发 但是 我需要知道已删除项目的