Объясните пожалуйста - C# (204569)
Формулировка задачи:
Вот нашел в инете образец кода, по обработке события нажатия кнопки. Приложение то было написано с на WPF с применением патерна MVVM. Сам код по отдельности все элементы вроде более менее понятны, а все вместе нет
вот сам код :
1. отдел ViewModel:
Код C#
-- идет объявления свойства с целью прибиндить его к кнопке в XAMLE
-- событие возникающее при нажатии на кнопку
Код XАML
Далее класс обработки события:
Код C#
а вот что здесь происходит, по отдельности что то вроде понимаю а все вместе не допираю и с трудом представляю а если надо какое другое событие сделать...как писать хрен его знает, нигде почитать толком не могу методу..уже день по форумам и книгам лажу...капец какой-то(
public ICommand ClickCommand { get; set; }private void ClickMethod()
{
MessageBox.Show("This is click command.");
}<Button Content="Click me" HorizontalAlignment="Left" Margin="291,97,0,0" VerticalAlignment="Top" Width="75"
Command="{Binding ClickCommand}"/>
namespace WpfApplication.ViewModel
{
public class Command : ICommand
{
#region Constructor
public Command(Action<object> action)
{
ExecuteDelegate = action;
}
#endregion
#region Properties
public Predicate<object> CanExecuteDelegate { get; set; }
public Action<object> ExecuteDelegate { get; set; }
#endregion
#region ICommand Members
public bool CanExecute(object parameter)
{
if (CanExecuteDelegate != null)
{
return CanExecuteDelegate(parameter);
}
return true;
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public void Execute(object parameter)
{
if (ExecuteDelegate != null)
{
ExecuteDelegate(parameter);
}
}
#endregion
}
}Решение задачи: «Объясните пожалуйста»
textual
Листинг программы
private void btn1_Click(object sender, RoutedEventArgs e) {
MessageBox.Show("Hello, World!");
}