2012-06-18 5 views
0

ListBox에서 인스턴스화 된 여러 사용자 정의 컨트롤이 있습니다. 나는 NavigationCommands.Refresh에 대한 핸들러를 가지고, (리스트 박스의 ItemTemplate을 내부에서 생성)이 동적으로 생성 된 UserControls 각에서터널링 명령

<Window.CommandBindings> 
    <CommandBinding Command="NavigationCommands.Refresh" CanExecute="CanAlwaysExecute" /> 
</Window.CommandBindings> 

을 : 나는 NavigationCommands.Refresh을 제기 나의 창에 버튼이, 그리고 CanExecute 핸들러는 실행 할 수 있도록. 창에서 버튼을 클릭하면 각 사용자 콘트롤에서 설정 한 처리기가 실행되지 않아야합니까? 각 UC로 터널을 내리라는 명령이 필요하지만 그렇지 않습니다.

<UserControl.CommandBindings> 
    <CommandBinding Command="NavigationCommands.Refresh" Executed="UpdateStatus" CanExecute="CanAlwaysExecute" /> 
</UserControl.CommandBindings> 
.... 
<Button Width="200" Text="Refresh All" Command="NavigationCommands.Refresh"/> 

답변

0

터널링 명령은 루트에서 대상 사이트로 이동하는 것처럼 작동하지 않으며 "분할"하지 않습니다. 그래서 그들은 창에서 시작하여 클릭 된 버튼에서 끝납니다.

+0

그래서 어떻게해야합니까? – Echilon

+0

@Echilon : 창의력을 발휘하십시오. 예 : 메인 버튼을 클릭하면 관심있는 모든 컨트롤에 대해 수동으로 명령을 올리십시오. –

+0

그 목록 상자에있는 모든 컨트롤을 통해 루핑, 내 안에 중첩 된 다른 ListBox 찾기 다음 모든 항목을 통해 반복하고 내 usercontrol 찾는 다음 메서드를 호출합니다. 더 우아한 방법이 있습니까? – Echilon