명령 기능을 사용하는 메뉴 인 WPF 앱이 있습니다. 모든 것이 잘 정리되어 있으며 메뉴의 버튼을 클릭하면 명령이 실행됩니다. 그러나 명령의 CanExecute 부분을 존중하기 위해 버튼의 IsEnabled 상태를 가져 오는 데 문제가 있습니다.WPF의 명령 내에서 컨트롤에 액세스
하나의 과제는 UI에서 수행중인 작업을 명령에서 확인해야한다는 것입니다. 예를 들어, 하나의 명령은 ListBox의 특정 항목을 선택해야 ListBox에 대한 참조를 가져올 수 있지만 명령이 내 뷰 모델 (MVVM 패턴)에 노출되어 있기 때문에 사용할 수 없습니다. UI에 대한 액세스 (BTW, ListBox가 다른 사용자 컨트롤 [parent = mainwindow]에있는 동안 메뉴는 한 사용자 컨트롤 [parent = mainwindow]에 있음).
또한 명령의 CanExecute 메서드를 false로 반환하여 코드를 false로 설정하더라도 단추의 Enabled 속성은 변경되지 않습니다 ... 명령은 실행되지 않지만 변경되지는 않습니다 ... 절망적입니다. . 나는 CanExecuteChanged 이벤트를 수정/발생시킬 필요가 있다고 가정하지만, 언제해야하는지 잘 모르겠습니다 (좋은 샘플을 찾을 수 없습니다).
의견? 이것은 다음 다른 컨트롤에 바인딩 할 수 있습니다 - 당신은 여전히 작동 할 수있는 CommandParameter를 의미 -
체크 아웃 MVVMLight ... 나는 Messger 클래스 아이디어를 좋아합니다 ... 감사합니다! –