Commanding в основном используется для четкого разделения между ViewModel и пользовательским интерфейсом. В чем разница между подпиской на события и commanding? Рассмотрим следующий пример:Xamarin.Forms: Подписка на обработчики событий VS. commanding
public App()
{
Button button = new Button
{
Text = "Press me",
};
button.Clicked += Button_Clicked;
// The root page of your application
MainPage = new ContentPage {
Content = new StackLayout {
VerticalOptions = LayoutOptions.Center,
Children = {
button,
}
}
};
}
private void Button_Clicked(object sender, EventArgs e)
{
System.Diagnostics.Debug.WriteLine("Pressed!");
}
VS.
public App()
{
Button button = new Button
{
Text = "Press me",
};
button.Command = new Command(() => System.Diagnostics.Debug.WriteLine("Pressed!"));
// The root page of your application
MainPage = new ContentPage {
Content = new StackLayout {
VerticalOptions = LayoutOptions.Center,
Children = {
button,
}
}
};
}
Относительно управления памятью следует отказаться от подписки на мероприятие. Это также справедливо для командования? Где можно подписаться/отказаться от подписки на/из мероприятия? В OnAppearing()
и OnDisappearing()
?