0

我有一个典型的主从场景。用户可以在主视图中单击“添加新”并在详细视图中输入详细信息。例如,假设我有产品的 ObservableCollection 列表。当用户单击“添加新”时,我将新的产品记录添加到 ObservableCollection,然后打开一个详细视图以添加产品详细信息。如果用户确实保存了产品,这很有效。但是,如果用户决定取消添加新产品,我如何从主视图中产品的 ObservableCollection 中删除它。现在我可以想到两种方法,第一个是将 ObservableCollection 的引用传递给 Details 视图,第二个是使用事件通知 master 视图关于新的 Product 记录删除。你有什么建议?此外,如果有更好的方法来专门处理棱镜,

问候,尼尔文。

4

1 回答 1

1

将对 ObservableCollection 的引用传递给详细信息视图是不行的——它应该只知道它绑定到的记录。

您尚未为此指定 UI,可能有几种方法可以更适合您的设计。然而,一种合理不可知的方法是使用 EventAggregator 发布主视图可以订阅的事件。如何处理该事件取决于主视图,不同的视图可以以不同的方式响应。在这种特殊情况下,主视图可以检查当前选定的项目,如果它是新的(即尚未保存,没有像 ID 这样的关键信息),那么它可以简单地将其从集合中删除并丢弃它。

于 2012-04-17T04:32:33.470 回答