2013-06-11 4 views
2

그래서 메뉴 막대에 줌인 버튼이 있고 여러 단계 아래로 명령을 확대하고보기 및 다시 그리기중인 객체를 확대하고 싶습니다.Wpf에서 단추의 명령을 하위 컨트롤로 보내려면 어떻게해야합니까?

필자의 독서에서 알 수 있듯이 명령은 일반적으로 명령 소스 (이 경우 버튼)의 미리보기 이벤트와 함께 거품을 낸 다음 명령 소스에 터널링하여 명령을 바인딩하는 명령 바인딩을 찾습니다. 명령의 이벤트 핸들러. 그러나, 내 경우, 영향을 주려는 컨트롤은 단추의 아래쪽 레벨입니다.

바인딩이 높은 수준의 컨트롤에있을 때 올바른 결과를 얻었습니까? 그런 다음 높은 수준의 컨트롤에서 하위 수준의 함수를 실행하도록 설정 했습니까?

나는 코드를 자식 자손에 명령 대상으로 설정하는 것이 더 깔끔하게 보일 것이라고 생각했지만, 지금은 명령 대상이 실제로하는 것인지 확실하지 않습니다. XAML에서

CommandTarget="{Binding ElementName=wavegraphcanvas, Path=CommandTarget, Mode=OneWay}" 

을 그리고 그 아이의 요소를 찾을 수있다 * 나는 무슨 일이 일어날 지 생각

이가 거품에서 것이다 :

난 그냥과 같이 명령 대상을 할 수 있습니까? 버튼을 누른 다음 요소 이름 또는 무언가를 찾을 때까지 터널을 내립니다.

답변

2

CommandTarget은 대상 요소가 무엇인지 알 때 적합합니다. 당신의 경우에 그것은 사실 인 것처럼 보입니다.

명령을받을 수있는 요소가 여러 개있는 경우 (예 : Paste 명령을 가져 오는 3 개의 텍스트 상자) CommandTarget을 설정하는 것은 의미가 없습니다. 이것이 바로 RoutedCommand의 라우팅 부분입니다.

+0

그래, 그렇다면 내 버그가 어디 있는지 모르겠다. 단지 내가하려는 일이 실제로 가능했는지 확인하고 싶었다. –

관련 문제