내가 그 기술에 대해 읽었습니다,하지만 내가 사용했던 하나 아니에요 아니면 제가 일반적으로 사용되는 생각합니다. 일반적으로 프리즘의 DelegateCommand 또는 MVVM 라이트의 RelayCommand를 사용합니다. 이들은 CanExecuteChanged 이벤트를 가진 ICommand를 구현합니다. 그러면보기 모델의 상태가 변경 될 때이 이벤트를 발생시킬 책임이 있습니다.
public class MyViewModel
{
DelegateCommand _myCommand;
public MyViewModel()
{
_myCommand = new DelegateCommand(ExecuteMyCommand, CanExecuteMyCommand);
}
public ICommand MyCommand
{
get{ return _myCommand; }
}
private void ExecuteMyCommand(){ ... }
private bool CanExecuteMyCommand() { return true/false; }
// for example
public int SomeProperty
{
get{ ... }
set{
...;
if(...){
_myCommand.RaiseCanExecuteChanged();
}
}
}
}
내가 도움이 되었으면 좋겠다.
'Application.Current.Dispatcher.Invoke?'를 통해 전화해야 할 수도 있습니다. http://stackoverflow.com/a/15828850 – Benjol