
在网上搜索相关的资料时会发现,大部分教程都会让你引入Microsoft.Xaml.Behaviors.Wpf,但这种方法个人觉得有以下这些缺点
需要写太多的XAML
无法自由传递参数
EventName、MethodName等属性无法享受到自动提示
我无法接受这些缺点,于是自己琢磨了一个相对方便的方法。

先利用编辑器在View层(MainWindow里)生成对应的事件方法(图2)。
再将生成的方法复制一份到ViewModel中。
在View层中,通过图3的方式将接收到的事件传递给ViewModel。 这种方法的好处是,事件方法由IDE负责生成,整个传递过程清晰明了,能够享受IDE的代码提示,最重要的是,不用引入额外的库 。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
if (DataContext is MainViewModel vm)
{
vm.Window_Loaded(sender, e);
}
}
}