我知道ViewModel不应该具有View的任何知识,但我如何从ViewModel调用MediaElement.Play()方法,而不是在ViewModel中引用View(或直接引用MediaElement)?
其他(链接)问题:如何在不违反MVVM模式的情况下从ViewModel管理View的控件可见性?
这个问题与— MediaElement无关,与此相关,我已经从ViewModel中读取了MediaElement.play()和违反MVVM模式的内容:MediaElement.Play(),我都同意。
但是请说我们使用的是第三方程序集,例如NAudio。我们不必寻找将现有XAML媒体控件的交互式功能插入我们的ViewModel的方法。相反,我们可以简单地InteractionTrigger在View中使用例如s,在ViewModel中对其进行订阅,然后在给定的媒体文件上调用play命令。
现在我的问题是:在MVVM模式下,这是否仍适合ViewModel?还是我们应该将其交给模型并从那里播放文件?