自从我开始学习C#以来,我已经看到了一些处理事件的方法。说我有一个像这样的XAML按钮:C#事件处理方法
<Button x:Name="button" Content="Click me!"/>
鉴于此按钮,我可以在几个方面挂钩click事件:
修改按钮的
Click
属性指向方法在后面的代码,如:<Button x:Name="button" Content="Click me!" Click="button_Click"/>
,然后添加
button_Click
方法的代码:private void button_Click(object sender, RoutedEventArgs e) { button.Content = "Ow >_<"; }
通过委托在代码处理该事件后面:
button.Click += delegate { button.Content = "Ow >_<"; };
通过lambda表达式在后面的代码处理该事件:
button.Click += (object sender, RoutedEventArgs e) => { button.Content = "Ow >_<"; };
鉴于这三个方法,我有几个问题:
- 这些方法之间的根本区别是什么。
- 是否有任何情况下使用一种方法应该而不是另一种。我已经看到类型1主要用于WPF和WinRT应用程序,但其他两个我只在使用Xamarin时才真正看到。
您提到了WPF,但是WinRT Universal应用程序中可以使用相同的MVVM模式吗? –
我从来没有使用过Universal Apps,但快速的谷歌搜索显示了一些如何做到这一点的例子。 –