Debugging CommandBinding의 CanExecute
-
05-07-2019 - |
문제
a Button
에 묶여 NavigationCommands.RefreshCommand
. 명령의 핸들러는 상위 제어에 있습니다. 핸들러의 CanExecute
이렇게 보인다 :
e.CanExecute = !IsConnecting; // IsConnecting is a Dependency Property
어떤 이유로 Button
창을 클릭 할 때까지 장애가 남아 있습니다.
내가 클릭하면 Button
그리고 그것을 실행하도록하십시오 (원인 IsConnecting
일시적으로 true로 설정하려면) 버튼을 올바르게 비활성화하지만 창에서 다른 이벤트가 발생할 때까지 버튼을 활성화하지 않습니다 (예 : 클릭).
버튼에 바인딩 된 명령의 CanExecute 핸들러를 디버깅하는 데 사용할 수있는 도구 나 요령이 있습니까?
해결책
버튼의 CANEXECUTE는 GUI에서 무언가가 발생할 때만 호출됩니다. 백그라운드에서 연결된 변경 사항이 있으므로 WPF는 컨트롤을 업데이트하지 않습니다.
WPF가 CanExecute 호출을 업데이트하도록 강요합니다 CommandManager.InvalidateRequerySuggested
제휴하지 않습니다 StackOverflow