2014-03-27 86 views
1

目前我有一个应用程序,我创建了两个区域的布局。在两个区域中,一个是标题,另一个是由网格数据填充的内容区域。木偶父母和孩子的意见

我有3个项目视图来替换我的内容区域。现在我想知道如何存储在第一个itemview中选择的行的值并将其显示在第三个视图中。我尝试的是我在布局中创建了一个模型对象,并在所有视图中使用该模型来设置和获取,就像它是一个共享对象,任何视图都可以使用layout.model.set()或layout.model.get )。

在布局中创建模型并不是一个好的方法。共享数据的另一种方式是什么?如果我使用单个视图特定的模型对象,则在使用new运算符创建模型时,一个视图中的数据集不能被另一个视图访问。

回答

2

我是发布 - 订阅模式的忠实粉丝,而木偶使用Event Aggregator实现这一点非常简单。第一个视图会发送一个事件,比如说“viewname:selectedrows”,它会传递与事件一起选择的特定模型。它不需要知道谁正在订阅该事件,它不应该在意。这只是揭露一个有趣的事件。第二个视图可以在其事件处理程序中访问该数据。

我喜欢基于事件的架构的原因是视图保持松散耦合。而不是硬编码对共享对象的引用,视图是完全独立的。你可以将它移动到应用程序的任何其他部分,它仍然可以工作。

+2

您可以请分享一些示例工作代码,以了解它 – user3167895