2016-12-25 1 views
0

특정 컨트롤에 포커스가있을 때만 실행되는 Catel에서 응용 프로그램 명령을 등록 할 수 있습니까?집중 제어에서만 Catel 응용 프로그램 전체 명령

는 예를 들어, Catel.Examples.WPF.Commanding 예에서, (https://github.com/Catel/Catel.Examples/tree/master/src/NET/Catel.Examples.WPF.Commanding) 내가 TextBoxTextBlock를 대체 할 경우 ApplicationCOmmands.CutApplicationCommands.PasteRibbonButton의 추가, 이러한 응용 프로그램의 명령 만에 TextBox에 초점을 맞춘 작품.

포커스가있는 DocumentView에서만 새로 고침 명령을 실행할 수 있습니까?

또는 RoutedUICommands을 Catel 및 그 ICommandManager과 함께 사용하는 예 또는 지침이 있습니까?

감사합니다, 톰

답변

1

당신이 빈 응용 프로그램 전체 명령을 등록하면이 가능하다. 그런 다음 뷰 모델을 초기화 할 때마다 액션/하위 명령을 추가하고 VM이 다시 닫힐 때 등록을 취소 할 수 있습니다. 이렇게하면 모든 "열린"인스턴스에 대해 명령이 호출됩니다 (하나 이상의 하위 명령을 사용할 수있는 경우에만 실행 가능).

+0

흠, 이해가 안됩니다 ... Commanding 예제에는 4 개의 DocumentViewViewModels이 초기화되고 동시에 활성화되어 있으므로 모두 새로 고침 명령을 실행합니다. 포커스가있는 것 중 하나만 새로 고침하고 싶습니다. TextBlock을 TextBox로 대체했는데, 실제 문제에 더 가깝습니다. 라우팅 된 명령 및 IComandManager 대신 System.Windows.Input.CommandManager와 함께 작동하도록 만들 수 있지만 가능하다면 두 개를 혼합하지 마십시오. 비슷한 예제를 위해 Catel, LogViewer, Orchestra를 보았지만 찾을 수 없었습니다. 수정 된 Commanding example을 어딘가에 게시 할 수 있습니까? 고마워. – Tom

+0

그런 다음 SelectedTabChanged에서 명령을 수동으로 등록 취소해야합니다. –

관련 문제