2012-05-31 2 views
1

내 WPF 프로그램은 WPF 맵 컨트롤이있는 타사 맵 패키지를 사용합니다. 내 프로그램은이 소프트웨어가 설치되어 있지 않은 시스템에서 실행할 수 있어야하며, 소프트웨어가 설치되고 사용되는 것을 인식 할만큼 충분히 똑똑해야합니다. 즉, 양식 컨트롤의 XAML을 양식의 XAML 파일에 포함 할 수 없거나 XAML 구문 분석 예외가 throw됩니다.WPF 코드의 이벤트 처리기 설정

소프트웨어 설치 여부를 결정하는 기술이 있습니다. 내 프로그램의 초기화 코드에서 매핑 소프트웨어가 설치된 경우 MapsAreInstalled이라는 Application 객체의 속성을 true로 설정하고 그렇지 않은 경우 false로 설정합니다.

내 양식에 UserControl 인 경우 OnApplyTemplate 메서드의 재정의를 추가했습니다. 이 값은 MapsAreInstalled 속성의 값을 확인하고 값이 true이면 새 맵 컨트롤을 만듭니다. 여기에 나는 그것이 내을 바꾸기로 작정되기 전에이 컨트롤을 만드는 데 사용 된 XAML는 다음과 같습니다

<telogis:MapControl ButtonBase.Click="CarImage_Click" 
        Canvas.Left="0" 
        Canvas.Top="0" 
        Center="41.366674544084,-73.6112966322899" 
        DragBehavior="None" 
        Heading="0" 
        Height="{Binding ElementName=ChannelCanvas, Path=ActualHeight}" 
        MapQuality="Perfect" 
        Name="ReadMap" 
        Perspective="TwoD" 
        RenderLabels="True" 
        UiEnable="True" 
        Width="{Binding ElementName=ChannelCanvas, Path=ActualWidth}" 
        Zoom="50" /> 

내가 ButtonBase.Click 이벤트 핸들러를 제외하고 뒤에 코드에서 이러한 모든 속성을 초기화하는 방법을 알고있다. 코드 숨김으로 어떻게 설정합니까?

토니

답변

4

나는 이것에 대한 답을 발견

RoutedEventHandler clickHandler = MyClickHandler; 
mapCtrl.AddHandler(ButtonBase.ClickEvent, clickHandler); 

감사 어쨌든.