问题标签 [inotifycollectionchanged]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
109 浏览

c# - 复制列表中的更改

想象一下,我有一个项目列表:

现在从某处服务器告诉我的应用程序该元素B已被删除,但它只提供整个新列表,而不是确切的更改细节。由于 WinRTListView会自动为其中的项目添加、删除和移动设置动画,因此我不希望刷新支持列表并调用INotifyCollectionChangedReset- - 事件,因为这会使每个项目的动画看起来相当生硬和粗糙。相反,我想计算将本地列表转换为从服务器获取的列表所需的步骤。(有点像 levenshtein 距离,只是不是步数,而是步数本身)

例如:

我该怎么做?

编辑:就我而言,订单很重要

0 投票
1 回答
765 浏览

c# - INotifyCollectionChanged 在哪里?

我正在尝试使用 MS 的 ObservableConcurrentDictionary 示例,但遇到了一个完全出乎意料的问题。

在 System.Collections.Specialized 命名空间中找不到 INotifyCollectionChanged 接口。该项目是 WinForms,我尝试将 .NET 3.5 和 3.5 客户端配置文件作为目标,但无济于事,尽管 MSDN 说它受支持。在包含集合的程序集中找不到任何东西,所以我想我也没有遗漏任何引用。谷歌搜索没有定论,显然我是全世界唯一遇到这样问题的人。

这到底是怎么回事?

这是一个屏幕截图。请注意 System.Collections.Specialized 如何标记为未使用。

VS界面截图。 请注意 System.Collections.Specialized 如何标记为未使用。

0 投票
0 回答
593 浏览

c# - 当第二次初始化包含的 UIViewController 时,UITableView 到 ObservableCollection 的绑定中断

我正在使用 mvvmcross 和 xamarin 将 ObservableCollection 绑定到 UITableView。使用 Add、Remove 和 Move 方法就地更新集合。这些调用正确触发 INotifyCollectionChanged 事件,并且 TableView 在第一次显示包含表的视图时按预期更新。如果用户作为正常应用程序流程的一部分离开原始视图,但稍后返回正确的数据,则会将数据加载到表中,但调用添加、移动和删除不再更新表。

  • 更新集合时仍会触发 INotifyCollectionChanged 事件
  • 如果我在 MvxStandardTableViewSource 的子类中手动订阅这些事件并尝试在 UITableView 上调用 ReloadData 仍然不会更新
  • 我的演示者正在创建视图模型的新实例,并在每次访问页面时查看。

我还在我的应用程序中使用 Xamarin-Sidebar ( https://components.xamarin.com/view/sidebarnavigation ) 进行导航,并使用自定义演示者加载视图,但据我所知,视图是通过完全初始化的相同的代码路径,无论是第一次访问还是后续访问。

我的演示者 Show() 方法如下所示:

我的 ViewController 中的绑定如下所示:

我的视图模型如下,其中 PlaylistTable 是 ObservableCollection 的子类,其中 Update 方法使用添加、移动和删除来保持集合是最新的。

此设置在第一次初始化视图并正确更新表时完美运行,只有第二次和后续时间初始化视图时表无法更新。谁能解释为什么在两个实例中使用相同的技术创建视图时绑定失败?

如果需要,我可以发布额外的代码,但我相信问题在于我如何使用演示者,因为我没有从 PlaylistTable 发布的代码在单元测试和首次查看时正确运行。

0 投票
0 回答
86 浏览

vb.net - AddRange ObservableCollection 问题

嗨,我正在使用此链接来实现最快 的 Observable Collection ObservableCollection.AddRange 的最佳性能

ObservableCollection 不支持 AddRange 方法,所以我会收到添加的每个项目的通知,除了 INotifyCollectionChanging 呢?

但是在多次调用 AddRange() 或 ReplaceRange() 方法时,性能会变慢,例如

即使使用相同的数据,它也会花费更多时间来执行方法。

为了更好地理解,这是一个代码

0 投票
2 回答
768 浏览

c# - 如何识别列表中对象的哪些属性发生了变化

我有一个One具有以下属性的类

现在我One在 ViewModel 中创建了一个这样的类型列表

并在 ActionResult 的列表中添加了一些对象并将其传递给模型。

现在,当调用 post 方法时,我想找出删除或添加了哪些对象,lstOne以及更改了给定对象的哪些属性lstOne

我不想使用迭代列表和比较对象和属性的旧方法,还有其他方法吗?但是,我在 MSDN 网站上看到ObservableCollectionNotifyCollectionChangedEventArgs找到了正确的方法来实现它以解决我的查询。

0 投票
1 回答
866 浏览

c# - System.InvalidOperationException 'n' 集合更改事件中的索引对于大小为 '0' 的集合无效

在 INotifyCollectionChanged 的​​自定义实现上触发 CollectionChanged 事件时出现此异常:

PresentationFramework.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理

附加信息:集合更改事件中的“25”索引对于大小为“0”的集合无效。

XAML 数据网格作为 ItemsSource 绑定到集合。

如何避免这种异常的发生?

代码如下:

错误发生在以下行:

谢谢!

0 投票
1 回答
1940 浏览

c# - 将 NotifyCollectionChangedAction.Replace 传递给 NotifyCollectionChangedEventArgs 失败

在自定义属性设置器上,我尝试调用我的自定义事件并NotifyCollectionChangedAction.Replace作为参数传递,NotifyCollectionChangedEventArgs但我得到一个System.ArgumentException. 我做错了什么?

我的自定义事件:

我的电话:

0 投票
1 回答
1322 浏览

c# - NotifyCollectionChangedEventArgs 项目不可访问

我有一个对象CollectionChanged事件的处理程序,但ObservableCollection<T>无法弄清楚如何使用NotifyCollectionChangedEventArgs来检索IList事件中包含的项目。

添加到集合中的新项目位于NewItems属性中,即一个IList对象。Intellisense 不会让我访问.Item[Index](我应该能够根据文档),也不能将NewItems列表转换为局部变量(根据调试NewItems列表是一个System.Collections.ArrayList.ReadOnlyList似乎不作为 MSDN 中的可访问类存在的.)

我究竟做错了什么?

例子:

这个例子使事情尽可能通用,但仍然失败。

0 投票
1 回答
719 浏览

listview - 点击时删除列表视图中的项目

这是我的代码:

当调用 removeItem 方法时,视图不会刷新,并且项目不会从 ListView 中删除,可能问题出在 CollectionChanged 上,但我不知道如何解决。

注意:在 Android 设备中调试

0 投票
1 回答
24 浏览

c# - 实体数据库存储的序列化类

我有一个原子类,用于将一周中的日期标记为真/假值。

我想使用 Entity 将其存储为单列。我有一个看起来像这样的 POCO:

这里的问题是当我访问 DaysOfWeek 属性时,我无法设置值。

我相信我需要的是一个 ObservableCollection 事件,但是在搜索示例之后,我不确定如何实现它。我是否修改我的实体 POCO SSRS_Subscription 以添加它?任何有关如何更好地做到这一点的提示或技巧将不胜感激。