【问题标题】:C# How many times should I raise the PropertyChanged eventC# 我应该引发多少次 PropertyChanged 事件
【发布时间】:2017-07-07 08:41:04
【问题描述】:

假设我有一个方法可以从父对象中删除单个子对象并引发 PropertyChanged 事件以指示子对象列表已更改。现在说我有第二种方法,可以在一次调用中删除多个子项,并且使用第一种方法,以免再次编写一段代码。在这种情况下,我应该让第二种方法调用第一种方法 N 次并引发 PropertyChanged 事件 N 次,还是应该在第二种方法结束时只引发一次事件?谢谢。

【问题讨论】:

  • 如果您可以尽量减少方法调用并获得相同的结果,请始终减少调用次数。
  • 好吧,我宁愿浪费一点性能来换取更少的代码来维护/调试。但我也想确保它的设计符合 C# 哲学。
  • 我猜PropertyChanged 内部只设置了一个标志,表明该对象应该被更新,所以无论如何它可能并不重要。我猜你在这种情况下的代码不是时间关键的?
  • 这完全取决于我的班级的用户如何设计他的事件处理程序。他可以合理地期望单个方法代码的单个事件引发并依赖该行为。
  • 从辅助方法的第一个方法中提取删除对象的代码,将 RaisPropertyChangedEvent 代码保留在第一个方法中,然后在批量删除中使用辅助方法

标签: c# events methods propertychanged


【解决方案1】:

作为您的组件的使用者,我希望每次调用都只会引发一次 PropertyChanged 事件,无论最终该调用是否导致要删除一个或多个项目。

正如您在评论中所说,当我处理更改的事件时,我可能正在执行复杂或相对长时间运行的处理。如果我对剩余的项目进行迭代并做某事并且其中有很多(数百?数千?),那么必须多次而不是一次这样做可能会很快滚雪球,并可能成为严重的性能问题。

【讨论】:

  • 谢谢,我会去的。
猜你喜欢
  • 2010-12-07
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多