【发布时间】:2011-09-15 15:54:56
【问题描述】:
你好,
我是 Prism 和 WPF 的新手,我有一个关于在视图之间共享数据的问题。
我正在处理的应用程序类似于 SQL Server Development Studio。 Demo 包含两个区域。第一个区域包含树(如 SQL Server DS 中的对象资源管理器)。树节点绑定到不同的视图模型。例如 DatabaseA->Tables->dbo.TableA->Columns 等。
第二个区域最初是空的。当我双击树节点时,我想打开显示我在树中单击的数据的视图。
详细:
1.双击树节点
2.节点数据并显示在第二个区域
3.如果第二个区域不为空,请检查点击的节点数据是否已经显示在现有标签页之一中
4. 如果没有,则使用单击的节点数据创建新的标签页,否则关注现有的标签页
到目前为止,我设法创建了树。当点击树节点时应用调用:
UriQuery uriQuery = new UriQuery {{"ID", unit.Id.ToString()}};
uriQuery.Add("TypeName", "Unit");
var uri = new Uri("DebugTreeItemView" + uriQuery, UriKind.Relative);
RegionManager.RequestNavigate("SECOND_REGION", uri);
这将打开带有选项卡控件的视图,我可以获取 uri 参数。但我对这个解决方案并不满意。我需要一种方法:
1. 拦截此 RegionManager.RequestNavigate 调用以检查选项卡控件是否已创建。此外,我需要检查单击的节点数据是否尚未显示在现有标签页之一中。
2. 我想将 Unit 对象直接发送到选项卡控件视图,而不是发送 ID 和 typename。实现这一目标的最佳方法是什么?
谢谢。
【问题讨论】: