在MVVM中,播放来自Model或ViewModel的媒体文件?

时间:2018-10-05 10:55:09

标签: c# wpf mvvm

这个问题与MediaElement无关,与此相关,我已经阅读了MediaElement.play() from within ViewModelMVVM pattern violation: MediaElement.Play(),并且我都同意。

但是请说我们使用的是NAudio之类的第三方程序集。我们不必寻找一种将现有XAML媒体控件的交互式功能插入我们的ViewModel的方法。取而代之的是,我们可以简单地在View中使用例如InteractionTrigger,在ViewModel中进行订阅,然后在给定的媒体文件上调用play命令。

现在我的问题是:在MVVM模式中,这是否仍适合ViewModel?还是我们应该将其交给模型并从那里播放文件?

1 个答案:

答案 0 :(得分:4)

我要说的是,这完全取决于媒体文件的性质及其与应用程序核心逻辑的关系。

仅仅是单击时播放的UI反馈声音效果吗?保持视野。

这是一个音乐播放器应用程序,可以播放播放列表中的音乐吗?这是核心逻辑,属于VM。

如果不确定某个地方的内容,我会考虑使用文本控制台而不是WPF的应用程序中的虚构“视图”。如果即使由控制台驱动,逻辑仍然存在,则它存在于VM中。