2012-06-19 75 views
1

我陷入了一種情況,那裏我的自定義控件有一個Text屬性和一個使用OnApplyTemplate方法中的按鈕註冊的事件處理程序。如何在MainWindow.xaml中公開自定義控件位於用戶控件中的自定義控件事件和屬性?

但是,當我把這個自定義控件放在一個用戶控件中,並且我在一個窗口中使用這個用戶控件時,我試圖訪問自定義控件Text依賴屬性,但是無法這樣做。也試圖從自定義控件中的按鈕點擊事件,但是當我點擊按鈕時事件不會觸發。什麼都沒發生。

如果有人發現了類似的問題,並已解決並知道任何解決方案。

如何訪問在Mainwindow.xaml內使用的用戶控件內的自定義控件的依賴項屬性?我想訪問Mainwindow.xaml內部的自定義控件的屬性和事件。

回答

0

要得到這是用於內部Mainwindow.xaml使在這種情況下類型的string(爲Text)屬性的用戶控件中的定製控件的屬性和用戶控制新的屬性適用於這一個在烏爾自定義控件。

要處理事件ü可以在自定義的控制使自己的事件處理程序,這樣

public event MyEventHandler;

u需要委派以及

public delegate void MyEventHandler(object sender, ChoosenIdsEventArgs e);

,然後在自定義控件按鈕寫點擊事件

protected void btn_Click(object sender, EventArgs e) 
    { 
    if(MyEventHandler != null)//check if u have this handler invoke on parent (user control in this case) 
    { 
     MyEventHandler(sender,e); 
    } 
    } 

你可以在你的用戶控件上做同樣的事情。

希望這有助於:)

+0

感謝harry180,我已經在userocntrol的自定義控件的Text屬性造成了進一步的依賴屬性,我能夠訪問它在主窗口中也是如此,但問題是與事件,我已將單擊事件註冊到Part_ClearButton自定義模板 - public override void OnApplyTemplate() { base.OnApplyTemplate(); 按鈕clearFilterButton = base.GetTemplateChild(「PART_ClearSearchBoxButton」)as Button; 如果(clearFilterButton!= NULL){ + clearFilterButton.Click =新RoutedEventHandler(ClearFilterButton_Click);}} –

+0

你爲什麼要註冊這個事件模板?你會用很多不同的按鈕來使用它嗎? – harry180

相關問題