저는 이미이 질문에 대해 질문했지만, 혼란 스러울만한 것이 있습니다. WPF MVVM 패턴에 대한 자습서를 작성하고 있지만 자습서 에서처럼 ICommand 인터페이스를 구현하는 방법에 대해 자세히 설명하지는 않습니다. (확실하지 정말 얼마나 정확!?)WPF의 명령, 구현 질문
I ICommand의 다음과 같은 구현이 :
class ViewCommand : ICommand
{
#region ICommand Members
private Predicate<object> _canExecute;
private Predicate<bool> _execute(object param);
public ViewCommand(Action<object> action)
{
}
public bool CanExecute(object parameter)
{
return _canExecute == null ? true : _canExecute(parameter);
}
public void Execute(object parameter)
{
_execute(parameter);
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
#endregion
}
이제이 사용 :
class StartViewModel : ViewModel
{
public ViewCommand startViewCommand;
public ViewCommand StartCommand
{
get
{
if (startViewCommand == null)
startViewCommand = new ViewCommand(
param => this.StartApplication()); // StartApplication returns void
return startViewCommand;
}
}
내가 무엇을 내 생성자를 알아낼 수 없습니다 ViewCommand
클래스의 StartViewModel
클래스에서는 생성자에서 람다 식을 사용하기 때문에 일부 대리자가 필요하지만 Execute 및 CanExecute와 함께 작동하는 것이 무엇이며 어떻게 작동하는지 확신 할 수 없습니다. 나는 Action<object>
을 넣었지 만, 아마도 틀린 것 같습니다 ...
마지막으로 누군가가 ICommand를 구현하는 방법에 대한 지침서를 가르쳐 줄 수 있습니까?
감사합니다.