ViewModel에 속성 IEnumerable<MyObject> MyObjects
이 있습니다. MyObjects
이 적어도 하나의 객체로 채워지지만 실행 가능하지 않은 경우 실행 가능하도록 두 번째 뷰 모델 (첫 번째 참조)에서 특정 명령을 실행 가능하게하려고합니다.WPF는 지속적으로 리퀘스트를 수행 할 수 있습니다.
private bool CanExecute()
{
return this.viewModel.MyObjects.Any();
}
내가 MyObjects
의 기본 값이 변경 될 때마다 제기되는하여 PropertyChanged 이벤트가 :
내 CanExecute 방법은 다음과 같이 보인다.
논리는 올바르게 작동하지만 CanExecute() 메서드는 계속 호출되고 있으므로 기본적으로 전체 응용 프로그램이 고정됩니다. 동시에 MyObjects는 변경되지 않습니다 (또한 PropertyChanged 이벤트를 발생시키지 않습니다). CanExecute가 끊임없이 다시 질의되는 것을 막을 수있는 아이디어는 없습니까?
아마도 불필요한 이벤트의 원인을 찾아야합니다. –
명령이 바인딩 된 컨트롤에 따라 특정 이벤트가 CanExecute를 확인하도록 지시하면 명령이 실행됩니다. 나는 이것이 CommandManager.RequerySuggested와 관련이 있다고 생각한다. – Alan