1
5
我建议创造一些与
这将遵循既定的模式,以便客户机已经熟悉公开的接口——其中三个接口已经存在。使用现有接口还将允许与其他已经存在的.NET技术(如wpf)进行更适当的交互(wpf与
我希望
如果要添加取消支持,只需添加一个可写的
我想这是你的选择2。这是一种可行的方法,因为要与其他.NET技术(用于监视不断变化的集合)进行正确的互操作,您无论如何都必须为
|
2
2
我建议分开处理。我觉得更清楚。 编辑: 您可能希望在插入、插入等前后对事件进行cosider排序,或者像vb成员在插入之前、插入之后对事件进行cosider排序一样。这将给用户更多的灵活性。 |
3
2
看看这个 link ,可能这就是您要查找的,一个基于列表的通用对象,它充当列表,但具有内置事件,如beforeitemadded、itemadded、beforeitemremoved、itemremoved和itemseared。 希望这有帮助,汤姆。:) |
4
2
实际上,你会惊讶于你能如此轻松地创建一个这样的集合。
看一看
我会推荐选项1,因为它更清晰和简单。 下面是一个示例,您可以将其用于以下目的:
您还可以修改ListChangeEventArgs,使其具有名为“cancel”的bool属性,并控制Wheter来进行更改或不在集合中。 如果您需要这样的功能,After事件也很有用。 当然,您不必使用每个集合的所有事件,或者如果确实有必要,根据您需要此功能的原因,可能有其他方法来解决问题。 编辑: 如果您真的只想验证这些项并将它们的父属性设置为实体实例,那么实际上您可以编写一个这样做的集合,或者用另一种方式概括问题的集合。您可以向它传递一个委托来验证项目,另一个委托告诉它在添加或删除项目时应该做什么。 例如,您可以使用操作委托来实现这一点。 你可以这样消费它:
这种方法的主要好处是,您不必费心处理事件或委托,因为您所需要的所有内容都可以使用lambda表达式编写,但是如果您需要更高级的内容,则可以始终使用真正的委托而不是它们。 这是集合的一个示例:
出于这样的目的,我认为这是最干净的方法。 |
user1702369 · 模型中的IEnumerable可观察 6 年前 |
pyriame · 沙马林。表单:输入一个字符后取消焦点输入 7 年前 |
Losec · 使用命令过滤ObservableCollection 7 年前 |
Riyas · 如何更新可观察集合组 7 年前 |