Поскольку я начал изучать C#, я видел несколько способов обработки событий. Скажем, у меня есть кнопка XAML как это:C# Методы обработки событий
<Button x:Name="button" Content="Click me!"/>
Учитывая эту кнопку, я могу подключить событие щелчка несколько способов:
Изменить
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 >_<"; };
Обрабатывать событие через лямбда-выражения в коде позади:
button.Click += (object sender, RoutedEventArgs e) => { button.Content = "Ow >_<"; };
Учитывая эти три методы, у меня есть пара вопросов:
- В чем принципиальное отличие этих методов.
- Есть ли случаи, когда один метод должен использовать вместо другого. Я видел тип 1, используемый главным образом в WPF и приложении WinRT, но два других я действительно видел только при использовании Xamarin.
Вы упомянули WPF, но может ли тот же шаблон MVVM использоваться в универсальных приложениях WinRT? –
Я никогда не работал с Universal Apps, но быстрый поиск в Google показывает некоторые примеры того, как это сделать. –