【发布时间】:2014-09-19 03:17:56
【问题描述】:
我有一个我将调用 View1 的视图,它有一个我将调用 View2 的嵌套用户控件。我的主应用程序创建并显示 View1,后者又创建 View2,因为它是 View1 上的用户控件。 View1 和 View2 都有自己的视图模型。我需要做的是从 View1 的 viewmodel 中获取一个值到 View2 的 viewmodel。
View2 是一个完全独立的控件,它有自己的功能,可以在任何其他视图中重用,但它需要来自它所包含的任何视图的一条信息。在此处给出的情况下,这将是视图1。
我的第一次尝试是在 View2 上创建一个依赖属性,以便可以像这样在 View1 中设置它:
<myUserControls:View2 MyProperty="{Binding RelativeSource={RelativeSource Self}, Path=Parent.DataContext.MyProperty}"/>
这可以设置依赖属性,但这无助于将属性值放入 View2 的视图模型中,以便我可以使用它。
我正在 Silverlight 中执行此操作,如果这有什么不同的话。
有人知道有没有办法做到这一点?
【问题讨论】:
-
VM 之间的通信可以使用 Mediator 模式 安全地完成,请参阅discussion in this answer
标签: c# xaml silverlight mvvm