如何从另一个ViewModel访问ViewModel的属性?

时间:2011-11-24 14:40:03

标签: wpf mvvm

我有一个使用MVVM的WPF项目。我有两种观点:ClientViewCommentView

在DataGrid中选择客户端后,在ClientView中,我打开一个CommentView的屏幕。

如何访问Client上的媒体资源CommentViewModel

注意:属性Client属于ClientViewModel

2 个答案:

答案 0 :(得分:2)

  • 如果CommentViewModel和ClientViewModel强耦合,您可以直接使用它
  • 如果CommentView可视化树具有来自ClientViewModel的datacontext,您可以使用RelativeSource Binding来实现目标
  • 您可以使用MEF导出“Client”属性并将其导入CommentViewModel
  • 您可以使用某种Messenger或EventAggregator从CommentViewModel与ClientViewmodel进行通信

还有一些我认为:)

答案 1 :(得分:1)

在创建时将ClientViewModelClientViewModel.Client的引用传递给CommentViewModel