我目前正在尝试使用 WPF 和 MVVM,但我最近遇到了一个我不知道如何解决的问题。我是新手,所以如果有什么不应该的,请告诉我。
我有一个 ParentView 和它的 ParentViewModel。ParentView 拥有两个视图 SubViewA 和 SubViewB,它们都有自己的 ViewModel。这是我的 ParentView.xaml:
<local:ViewBase.DataContext>
<local:ParentViewModel x:Name="Model" />
</local:ViewBase.DataContext>
<Grid>
<local:SubViewA Visibility="{Binding ElementName=Model, Path=SubViewAVisibility}" />
<local:SubViewB Visibility="{Binding ElementName=Model, Path=SubViewBVisibility}" />
</Grid>
我想要做什么:SubViewModelB 有一个绑定到 SubViewB 的属性。当 ParentViewModel 中发生某个事件时,我想更改该属性。我想这应该通过将 SubViewModelB 中的属性绑定到 ParentViewModel 中的属性来完成,但我不确定如何?我在 ParentView.xaml 中尝试了类似以下内容:
<local:SubViewB Visibility="{Binding ElementName=Model, Path=SubViewBVisibility}" SomeProperty="{Binding ElementName=Model, Path=WhatIWantThePropertyToBe}" />
但这让我无处可去。那么我该如何解决呢?我知道我可以通过 MVVM 轻型工具包中的消息传递来做到这一点,但这似乎不适合我正在尝试做的事情。有什么建议么?
谢谢