1
CommandBinding.previewcanexecute 이벤트를 터널링하는 용도는 무엇입니까?CommandBinding.previewcanexecute 이벤트를 터널링하는 용도는 무엇입니까 ??
및 CommandBinding.canexecute 이벤트 버블 링 ?? 유용한 방법
CommandBinding.previewcanexecute 이벤트를 터널링하는 용도는 무엇입니까?CommandBinding.previewcanexecute 이벤트를 터널링하는 용도는 무엇입니까 ??
및 CommandBinding.canexecute 이벤트 버블 링 ?? 유용한 방법
터널링 및 버블 링 이벤트를 사용하면 핸들러를 여러 요소간에 공유하고 계층 구조의 상위 컨트롤에서 인터셉트 할 수 있습니다.
<StackPanel>
<Button Command="MyCommand" />
<Button Command="MyCommand" />
<Button Command="MyCommand" />
<Button Command="MyCommand" />
</StackPanel>
나는 모든 버튼에 영향을 미칠 것 MyCommand
에 대해 하나의 CommandBinding
를 정의하려면
StackPanel
에 정의 할 수 있습니다 : 예를 들어, 다음 XAML을 부여. 각 버튼이 명령을 실행하려고하면 이벤트는
StackPanel
으로 위쪽으로 바뀌며 4 개의 버튼에 대해 하나의 핸들러 만 필요합니다. 핸들러를 루트
Window
레벨에 배치하면 응용 프로그램의 버튼마다
에 적용됩니다. 반대로 이벤트를 터널링하면 이벤트를 시작한 컨트롤에 도달하기 전에이를 가로 채게됩니다. 예를 들어, 을에 내 모든 Window
에있는 모든 단추에 대해 사용하지 않으려면 터널링 이벤트로이 작업을 수행 할 수 있으며 단추는 항상 CanExecute
이 false
을 반환한다는 것을 알 수 있습니다.