问题标签 [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.
c# - 复制列表中的更改
想象一下,我有一个项目列表:
现在从某处服务器告诉我的应用程序该元素B
已被删除,但它只提供整个新列表,而不是确切的更改细节。由于 WinRTListView
会自动为其中的项目添加、删除和移动设置动画,因此我不希望刷新支持列表并调用INotifyCollectionChanged
Reset- - 事件,因为这会使每个项目的动画看起来相当生硬和粗糙。相反,我想计算将本地列表转换为从服务器获取的列表所需的步骤。(有点像 levenshtein 距离,只是不是步数,而是步数本身)
例如:
我该怎么做?
编辑:就我而言,订单很重要。
c# - INotifyCollectionChanged 在哪里?
我正在尝试使用 MS 的 ObservableConcurrentDictionary 示例,但遇到了一个完全出乎意料的问题。
在 System.Collections.Specialized 命名空间中找不到 INotifyCollectionChanged 接口。该项目是 WinForms,我尝试将 .NET 3.5 和 3.5 客户端配置文件作为目标,但无济于事,尽管 MSDN 说它受支持。在包含集合的程序集中找不到任何东西,所以我想我也没有遗漏任何引用。谷歌搜索没有定论,显然我是全世界唯一遇到这样问题的人。
这到底是怎么回事?
这是一个屏幕截图。请注意 System.Collections.Specialized 如何标记为未使用。
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 发布的代码在单元测试和首次查看时正确运行。
vb.net - AddRange ObservableCollection 问题
嗨,我正在使用此链接来实现最快 的 Observable Collection ObservableCollection.AddRange 的最佳性能
ObservableCollection 不支持 AddRange 方法,所以我会收到添加的每个项目的通知,除了 INotifyCollectionChanging 呢?
但是在多次调用 AddRange() 或 ReplaceRange() 方法时,性能会变慢,例如
即使使用相同的数据,它也会花费更多时间来执行方法。
为了更好地理解,这是一个代码
c# - 如何识别列表中对象的哪些属性发生了变化
我有一个One
具有以下属性的类
现在我One
在 ViewModel 中创建了一个这样的类型列表
并在 ActionResult 的列表中添加了一些对象并将其传递给模型。
现在,当调用 post 方法时,我想找出删除或添加了哪些对象,lstOne
以及更改了给定对象的哪些属性lstOne
。
我不想使用迭代列表和比较对象和属性的旧方法,还有其他方法吗?但是,我在 MSDN 网站上看到ObservableCollection
并NotifyCollectionChangedEventArgs
找到了正确的方法来实现它以解决我的查询。
c# - System.InvalidOperationException 'n' 集合更改事件中的索引对于大小为 '0' 的集合无效
在 INotifyCollectionChanged 的自定义实现上触发 CollectionChanged 事件时出现此异常:
PresentationFramework.dll 中出现“System.InvalidOperationException”类型的异常,但未在用户代码中处理
附加信息:集合更改事件中的“25”索引对于大小为“0”的集合无效。
XAML 数据网格作为 ItemsSource 绑定到集合。
如何避免这种异常的发生?
代码如下:
错误发生在以下行:
谢谢!
c# - 将 NotifyCollectionChangedAction.Replace 传递给 NotifyCollectionChangedEventArgs 失败
在自定义属性设置器上,我尝试调用我的自定义事件并NotifyCollectionChangedAction.Replace
作为参数传递,NotifyCollectionChangedEventArgs
但我得到一个System.ArgumentException
. 我做错了什么?
我的自定义事件:
我的电话:
c# - NotifyCollectionChangedEventArgs 项目不可访问
我有一个对象CollectionChanged
事件的处理程序,但ObservableCollection<T>
无法弄清楚如何使用NotifyCollectionChangedEventArgs
来检索IList
事件中包含的项目。
添加到集合中的新项目位于NewItems
属性中,即一个IList
对象。Intellisense 不会让我访问.Item[Index]
(我应该能够根据文档),也不能将NewItems
列表转换为局部变量(根据调试NewItems
列表是一个System.Collections.ArrayList.ReadOnlyList
似乎不作为 MSDN 中的可访问类存在的.)
我究竟做错了什么?
例子:
这个例子使事情尽可能通用,但仍然失败。
listview - 点击时删除列表视图中的项目
这是我的代码:
当调用 removeItem 方法时,视图不会刷新,并且项目不会从 ListView 中删除,可能问题出在 CollectionChanged 上,但我不知道如何解决。
注意:在 Android 设备中调试
c# - 实体数据库存储的序列化类
我有一个原子类,用于将一周中的日期标记为真/假值。
我想使用 Entity 将其存储为单列。我有一个看起来像这样的 POCO:
这里的问题是当我访问 DaysOfWeek 属性时,我无法设置值。
我相信我需要的是一个 ObservableCollection 事件,但是在搜索示例之后,我不确定如何实现它。我是否修改我的实体 POCO SSRS_Subscription 以添加它?任何有关如何更好地做到这一点的提示或技巧将不胜感激。