我是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)的讨论小组中提出了这个问题
答案 0 :(得分:1)
所以我想把一个MedieElement的引用注入ViewModel
不要那样做。在MVVM中,您应该从不在ViewModel中引用UI元素。相反,从代码隐藏中处理的ViewModel引发事件来控制MediaElement