自從我開始學習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,但快速的谷歌搜索顯示了一些如何做到這一點的例子。 –