MVVM中的简单事件处理

Chr*_*col 9 wpf xaml binding mvvm

只是想知道人们对于如何以最轻量级的方式从View中的控件最好地处理ViewModel中的事件的想法.

例:

<MediaElement
     MediaOpened={Binding SomeEventHandler} />
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我们希望在ViewModel中处理MediaOpened事件.没有像Prism这样的框架,如何将它绑定到ViewModel?

kiw*_*pom 12

命令 - 你的'SomeEventHandler'需要成为一个实现的类ICommand......有大量的在线文献...

另外 - 我会考虑获得一个免费的,轻量级的"迷你"MVVM框架,例如MvvmFoundation,它为这样的目的提供RelayCommand(没有学习PRISM的复杂性/开销)

编辑:

看看这个博客是否可以将命令附加到任何事件......正如我所提到的那样,它非常强大,但我猜你确实需要做一个判断调用,如果这是你想要的,那就像附上一个旧的 -老式的事件,并在你的代码中使用超薄的事件处理程序,只需在ViewModel上调用一些方法,如:

public void SomeEventHandler(object sender, SomeEventArgs e)
{
    MyViewModel vm = (MyViewModel)this.DataContext;
    vm.HandleLoadEvent( );
}
Run Code Online (Sandbox Code Playgroud)

务实与最佳实践......我会留下它;)