2012-05-31 59 views
1

我的WPF程序使用具有WPF地圖控件的第三方地圖包。我的程序需要能夠在沒有安裝該軟件的系統上運行,並且需要足夠的智能來識別何時安裝和使用該軟件。這意味着我不能在表單的XAML文件中包含任何用於映射控件的XAML,或者引發XAML分析異常。在WPF代碼中設置事件處理程序

我有一種技術來確定軟件是否安裝。在我的程序的初始化代碼中,如果安裝了映射軟件,我將Application對象的屬性MapsAreInstalled設置爲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); 

還是要謝謝你。

相關問題