从 CollectionChanged 事件更改集合

发布于 2024-09-10 04:49:28 字数 484 浏览 6 评论 0原文

我想在更改后更新集合,但我似乎无法“摆脱”此异常:

在 CollectionChanged 或 PropertyChanged 事件期间无法更改 ObservableCollection。

在事件处理程序内,我取消订阅 Collection Changed 事件在更改任何内容以防止无限循环之前以及进行更改之后,我再次订阅同一事件。

private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    data.CollectionChanged -= CollectionChanged;
    data.Add("Item");
    data.CollectionChanged += CollectionChanged;
}

我尝试使用 Dispatcher 调用 data.Add("Item"),但没有运气:(

I want to update collection after it was changed but I can't seem to get "away" from this exception:

Cannot change ObservableCollection during a CollectionChanged or PropertyChanged event.

Inside event handler I unsubscribe from Collection changed event before changing anything to prevent infinite loops and after changes are made i subscribe again to same event.

private void CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
    data.CollectionChanged -= CollectionChanged;
    data.Add("Item");
    data.CollectionChanged += CollectionChanged;
}

I tried using Dispatcher to call data.Add("Item"), but no luck :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

沫尐诺 2024-09-17 04:49:28

问题是您正在取消订阅尚未完成的活动中的活动。回过头来重新评估添加到集合中的原因,并确定是否有其他方法可以完成您的需求。

The problem is that you are unsubscribing from the event within the event which has yet to complete. Drop back and re-evaluate why you are adding to the collection and determine if there is another way to accomplish what you need.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文