【发布时间】:2019-12-22 07:54:26
【问题描述】:
我有一个带有网格的窗口,它的 DataContext 设置了“MainWindowViewModel”
<Grid x:Name="MainGrid">
<Grid.DataContext>
<view:MainWindowViewModel/>
</Grid.DataContext>
<!-- ... -->
</Grid>
这个 MainGrid 有两个子网格(未命名),其中一个包含一个显示页面的框架。 显示的页面将其他 ViewModel 设置为其 DataContext。
<Page.DataContext>
<view:AddOrderViewModel/>
</Page.DataContext>
在 MainWindowViewModel 我有一个属性“用户”。我想从页面的 ViewModel 访问这个属性。
这是否可能(不使用“代码隐藏”)。我真的不知道从哪里开始,因为我不知道如何从 ViewModel 中使用 ViewModel 获取 FrameworkElement(我猜它只处理可视化树?)
任何帮助,或推动正确的方向,将不胜感激。此外,如果您对如何将属性从一个 ViewModel 传递到另一个 ViewModel 有更好的了解,请随时分享:)
谢谢
【问题讨论】:
-
如果您只想在用户更改时将其值发送到另一个视图模型,这可以使用事件聚合器来实现,请参阅此帖子blog.magnusmontin.net/2014/02/28/… 如果您想尝试这条路线,我会推荐 Caliburn微而不是棱镜caliburnmicro.com
-
@erotavlas 效果很好。如果您将此作为答案发布,我会接受此作为答案。
标签: c# wpf xaml mvvm datacontext