我有一个典型的主 - 细节场景。用户可以在主视图中单击“添加新”,然后在详细视图中输入详细信息。例如,假设我有产品的ObservableCollection列表。当用户单击“添加新”时,我将新的产品记录添加到ObservableCollection,然后打开详细视图以添加产品详细信息。如果用户确实保存了产品,这很有效。但是,如果用户决定取消添加新产品,如何从主视图中的ObservableCollection of Product中删除相同的产品。现在我可以想到两种方法,首先将ObservableCollection的引用传递给Details视图,然后使用事件通知主视图有关新产品记录删除的信息。你有什么建议?另外,如果有更好的方法来专门处理棱镜,请告诉我。
的问候, NIRVAN。
答案 0 :(得分:1)
将对ObservableCollection的引用传递给详细信息视图是禁忌 - 它应该只知道它所绑定的记录。
您尚未指定适用于此的UI,有两种方法可以更好地适应您的设计。然而,一种合理的不可知方式是使用EventAggregator来发布主视图可以订阅的事件。由主视图决定如何处理该事件,不同的视图可以以不同的方式响应。在这种特殊情况下,主视图可以检查当前选择的项目,如果它是新的(即尚未保存,没有像ID一样的关键信息),那么它可以简单地将其从集合中删除并丢弃它