在master-detail情况下在两个窗口中绑定控件的最佳方法

时间:2009-04-01 18:46:52

标签: wpf data-binding mvvm

假设您有两个窗口,其中一个窗口具有列表框,另一个窗口应具有列表框中当前所选项目的详细信息。在一个窗口中这很容易做到但是如何用两个窗口做到这一点?不幸的是,这里有两个窗口。

1 个答案:

答案 0 :(得分:3)

假设它们都是同一个应用程序的一部分,那么必须有某种类型的父容器。

带有列表框的窗口是详细信息窗口的父窗口,或者有一个窗口拥有它们。

无论如何,只需将对象从一个窗口传递到另一个窗口即可。

例如,您的对象名为foo,并具有以下参数:fooA,fooB,fooC,fooD。

因此,列表框的datacontext是一个可观察的集合(foo)。当用户双击其中一个列表框项时,列表框的selectedItem是foo对象之一。接下来,您可以通过直接传递[myWindow.LoadFooForEditing(myFoo)]或将事件提交到列表框窗口的所有者并让它传递数据来将其提供给您的详细信息窗口。

如果它们是两个独立的应用程序,那么您需要开始考虑使用远程处理或MSMQ等工具来在两个应用程序之间传递信息。