为什么ObservableCollection没有RemoveAll方法?

2024-02-01

Why ObservableCollection没有RemoveAll方法就像List?

我已经实施了一个扩大方法来提供此功能ObservableCollection,但我想了解是否有特定原因不提供此功能。

会不会有影响数据绑定在某种程度上由于收藏变更? This http://updatecontrols.net/doc/tips/common_mistakes_observablecollection帖子确实指定了使用时可能出错的一些事情ObservableCollections,但没有解决这个问题。


它确实有一个Clear()删除所有可以使用的项目的方法。

如果我不得不冒险猜测他们为什么使用Clear代替RemoveAll,我想这是因为RemoveAll带有您正在从集合中删除项目的建议,同时Clear告诉您这些物品正在被清除。

这使得类型有所不同CollectionChanged引发的通知。Clear()提出一个NotifyCollectionChangedAction.Reset事件,并且不包括事件中删除的项目,而Remove提出一个NotifyCollectionChangedAction.Removed事件,并将删除的项目传递给该事件。

您不能提出CollectionChanged具有多个项目的事件 https://stackoverflow.com/a/7449401/302677,所以提出一个NotifyCollectionChangedAction.Removed删除所有项目的事件将引发异常。另一种选择是提出一个CollectionChanged每个被删除的项目都会发生事件,这对性能来说可能非常糟糕。并简单地提出一个NotifyCollectionChangedAction.Reset当用户期待一个事件时,事件会引起一些混乱Removed当他们移除物品时发生的事件。

所以我猜他们决定简单地使用.Clear()代替.RemoveAll()因为这个名字更好地描述了幕后实际发生的事情。

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

为什么ObservableCollection没有RemoveAll方法? 的相关文章

  • 为什么 Roslyn 中有这么多对象池的实现?

    The 对象池 http source roslyn codeplex com Microsoft CodeAnalysis ObjectPool 25601 cs 20b9a041fb2d5b00是 Roslyn C 编译器中使用的一种类
  • 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 但没有结果

    我想在我的 WPF 应用程序中将 Image 转换为 ImageSource 我使用正常工作的 Code128 库 已在 WinForms 应用程序中检查 下面的函数返回具有适当大小的 ImageSource 但没有任何内容可见 priva
  • .NET 图形重影

    我正在为我们正在开发的新应用程序制作一个示例 GUI 我已经决定了语言 但我可以使用任何第 3 方 DLL 或插件或任何我需要的东西 以使 GUI 尽可能无缝地工作 他们希望它非常像 mac ubuntu vista Windows 7 所
  • 具有自定义镶边的 WPF 窗口在右侧和底部有不需要的轮廓

    我使用 Microsoft Windows Shell dll 创建了带有自定义镶边的 WPF 窗口 这是代码
  • 中继命令和无参数执行方法

    我目前正在学习 WPF 和 MVVM 我想我已经了解了大部分内容及其工作原理 但我在使用 RelayCommand 或 DelegateCommand 时遇到了一些我不明白的问题 我认为这与代表的工作方式有关 请注意 下面的代码目前仅处于测
  • 如何在 WPF 中从原始帧渲染视频?

    我有一个特殊的摄像机 使用 GigEVision 协议 我使用提供的库进行控制 我可以订阅帧接收事件 然后通过 IntPtr 访问帧数据 在我的旧 WinForms 应用程序中 我可以通过从数据创建 Bitmap 对象并将其设置为 Pict
  • 是否可以使用.NET 跟踪文件操作?

    当以某种方式调用文件操作 例如打开或关闭 时 我是否可以在操作系统继续请求之前处理它 如果可能的话可以通过以下方式取消它 NET http en wikipedia org wiki NET Framework 如果 NET没有这样的能力
  • 何时使用 IComparable 与何时使用IComparer

    我正在尝试找出我需要实现哪些接口 他们本质上都做同样的事情 我什么时候会使用其中一种而不是另一种 好吧 他们不是quite与IComparer
  • 如何将 ConcurrentDictionary 转换为字典?

    我有一个 ConcurrentDictionary 对象 我想将其设置为 Dictionary 对象 不允许在它们之间进行转换 那么我该怎么做呢 The ConcurrentDictionary
  • Sencha Touch 和远程服务器上的身份验证

    我希望收到您关于使用 PhoneGap 和 Sencha Touch 的应用程序以及带有 Active Directory 的 NET 服务器的身份验证机制的反馈 因此 我们需要在移动设备上存储用户凭据 以便用户每次希望使用该应用程序时都不
  • 如何在发送邮件之前验证 smtp 凭据?

    我需要验证在中设置的用户名和密码SmtpClient发送邮件之前的实例 使用此代码 SmtpClient client new SmtpClient host client Credentials new NetworkCredential
  • 消息框按钮文本

    我环顾四周 似乎所有内容都可以在消息框中编辑 禁止按钮上的文本 WPF http en wikipedia org wiki Windows Presentation Foundation C MessageBox Show Generic
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • EF数据库首先如何针对数据库更改更新模型?

    在班级图书馆Ado net Entity Data Model已生成 POCO 类 这些是第一次生成的 但数据库更改并未得到反映 在edmx图表右键单击并选择Update Model from Database显示新创建的表 但即使选择添加
  • .NET 迭代器包装抛出 API

    我有一个带有 API 的类 它允许我请求对象 直到它抛出一个IndexOutOfBoundsException 我想将它包装到一个迭代器中 以便能够编写更清晰的代码 但是 我需要捕获异常以停止迭代 static IEnumerable It
  • 如何在 WPF 应用程序中实现气球消息

    我们想使用气球消息 如UX Guide http msdn microsoft com en us library aa511451 aspx来自微软 我发现一些示例使用 Windows 窗体中的本机代码 但本机代码需要组件的句柄 这对于
  • FullCalendar Asp.Net WebForms

    我正在尝试实施全日历 https i stack imgur com wmhGx png在我的 ASP NET 上WebForms项目 我见过一些实现此目的的示例 但没有任何运气 因为它们是针对我不习惯的 MVC 的 My Events数据
  • SSL/TLS/HTTPS 站点在 C#/.NET WebBrowser 控件中非常慢,但在 Internet Explorer 中则很好

    背景 我正在修改自动维基浏览器 http en wikipedia org wiki Wikipedia AutoWikiBrowser使用托管在安全服务器上的 MediaWiki 站点 我允许用户通过 C 应用程序中的 WebBrowse
  • 如何引用解决方案之外的项目?

    我有一个 Visual Studio C 解决方案 其中包含一些项目 其中一个项目需要引用另一个不属于解决方案的项目 一开始我引用了dll
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L

随机推荐

  • 如何通过请求使用转换流?

    基本上 我想在使用转换流将http响应发送到客户端之前更改它 但是下面的代码抛出一个错误 错误 结束后写入 有关的文档http nodejs org api stream html stream writable end chunk enc
  • 提升和变量范围

    有人可以帮助解释为什么下面的两个代码片段打印出不同的结果吗 区别在于条件语句内部 第一个例子中 有一个局部变量 Jack 分配给 name 并且条件为 true 意味着 name 的计算结果为 true 在第二个例子中 相同的名称 Jack
  • ASP.NET MVC 成员角色

    我需要对 ASP NET 会员资格进行一些说明 请帮助我 我正在使用 ASP NET MCV 3 框架 并打算使用 ASP NET 成员身份通过 LDAP 或 SQL 进行用户和身份验证管理 对于我到目前为止所理解的 ASP NET 会员资
  • 将科学计数法的字符串转换为 XPath 中的数字格式

    我有这个字符串 8 1161E 002 这个字符串实际上是计算的结果 不幸的是结果被转换为字符串并且我无法更改它 那么我怎样才能将这个字符串转换为类似的格式00 081 我正在查看 XPath 参考 但找不到format 例如函数 有没有办
  • std::函数向量

    我想要一个 std vector 包含一些函数 并且可以实时向其中添加更多函数 所有的函数都会有一个这样的原型 无效名称 SDL Event 事件 我知道如何创建函数数组 但是如何创建函数的 std vector 我试过这个 std vec
  • Android:仅旋转相机预览上的覆盖按钮

    我有一个 Android 应用程序 使用 LinearLayout 作为主要布局 并使用相机预览填充 SurfaceView 在此 我用三个按钮和一个自定义 TextView 填充另一个 LinearLayout 我希望相机预览始终保持横向
  • 为什么 Process.WorkingSet > Process.MaxWorkingSet?

    闲着的好奇心 我正在查看当前进程的一些属性 using Process p Process GetCurrentProcess Inspect properties p MaxWorkingSet 1 413 120 p MinWorkin
  • 在 matplotlib 表中换行文本

    我需要使用 matplotlib 从字典列表中创建一个表 为此 我使用以下函数 我在该网站的另一个答案中找到了该函数 import matplotlib pyplot as plt from matplotlib externals imp
  • 为什么会有相互冲突的变量?

    我在 facebook javascript SDK 和 python requesthandler 变量之间得到了冲突的结果 Javascript SDK 表示我的用户未登录 这是正确的 而来自基本请求处理程序的模板变量表示我的用户已登录
  • 如何打开 .hxs 文件?

    我知道 hxs 文件是编译后的帮助文件 是 chm 文件的替代品 但我似乎无法打开它们 我读到您使用此处找到的帮助资源管理器 dexplore exe 来阅读它们 C Program Files Common Files microsoft
  • 设置自定义字体时出现文本对齐问题

    当我为分段控件设置自定义字体时 它会更改垂直文本对齐方式 我正在使用下面的代码来设置字体 I dont think these lines are creating any issue but just wanted to paste al
  • IE 11 开发人员工具问题 - window.onload 中出现异常

    I installed Internet Explorer 11 on my Windows 7 machine and it s not building the DOM in DOM Explorer Does any one know
  • 无法减少 ng-repeat 中的观察者数量

    出于性能目的 我想从我的 ng repeat 中删除双重数据绑定 因此 相关的观察者 它加载 30 个项目 并且这些数据一旦加载就是静态的 因此不需要双重数据绑定 问题是 无论我怎么做 该页面上的观看者数量都保持不变 让我们说 div no
  • 如果不在 Woocommerce 中重新加载,自定义购物车计数不会更新

    我已将 ajax 脚本排入队列 但在不刷新页面的情况下似乎无法更新购物车商品计数 功能 Add scripts and stylesheets function startwordpress scripts wp enqueue style
  • 在 Javascript 中的多个变量声明期间不熟悉方括号的使用[重复]

    这个问题在这里已经有答案了 我是 Javascript 的初学者 遇到了这种语法用法 简化 var testString firstName lastName var a b testString split 我的问题是变量 a 和 b 在
  • 静态初始化与动态初始化

    为什么在 C 中我们更喜欢静态初始化而不是动态初始化 有什么大不了的 如果静态初始化如此高效 那么为什么像 Java C 这样的新语言要使用动态初始化呢 我们不这样做 我们更喜欢自动初始化 即在堆栈 而不是堆 上创建对象 如果我们这样做 他
  • 如何将所有 UIButton 字体更改为自定义字体?

    有什么办法可以做到这一点吗 我想要下载一个自定义字体以显示在 UIButton 上 如果你使用IBOutletCollection那么这应该是直接的 property nonatomic retain IBOutletCollection
  • 何时使用Serializer的create()和ModelViewset的perform_create()

    我想澄清有关创建模型对象的 Django rest framework 给定文档 到目前为止 我发现有 3 种方法来处理此类事件 序列化器的create 方法 这里是文档 http www django rest framework org
  • axios get 带有正文和标头的请求

    我怎样才能像这样 将主体参数和带有授权令牌的标头发送到此 const searchByDate async date1 date2 gt const tokenApp window localStorage getItem token co
  • 为什么ObservableCollection没有RemoveAll方法?

    Why ObservableCollection没有RemoveAll方法就像List 我已经实施了一个扩大方法来提供此功能ObservableCollection 但我想了解是否有特定原因不提供此功能 会不会有影响数据绑定在某种程度上由于