如何从ViewModel(MVVM Light Toolkit)访问View中的UserControl(MediaElement)

时间:2011-07-27 08:19:03

标签: mvvm mvvm-light

我是MVVM Light Toolkit(以及WPF)的新手。

我有以下问题,但看不到如何解决它:

在我的MainView中,我放置了一个MediaElement,以及一些控制应用程序行为的按钮。我将带有RelayCommands的按钮连接到ViewModel,这样就可以正常工作了。我想通过MainView的CodeBehind文件很容易启动和停止MediaElement,但我喜欢通过RelayCommands从ViewModel中控制MediaElement。所以我想在ViewModel中引入对MedieElement的引用。当我发现ViewModelLocator首先被构造时,这将构造ViewModel并最终构造MainView,因此在这种情况下注入将不起作用。

那么,让ViewModel接收对MediaElement的引用的最佳解决方案是什么?消息?

最好的问候

哈德

ps:我也在mvvm light toolkit主页(codeplex)的讨论小组中提出了这个问题

1 个答案:

答案 0 :(得分:1)

  

所以我想把一个MedieElement的引用注入ViewModel

不要那样做。在MVVM中,您应该从不在ViewModel中引用UI元素。相反,从代码隐藏中处理的ViewModel引发事件来控制MediaElement

相关问题