2013-04-17 62 views
0

對不起,首先,因爲我看到另一個問題,但兩者都是ans。和問題。不夠 How can I raise a parent event from a user control in WPF?將用戶控件中的事件提升到MainWindow

清楚在我MainWindow.xaml,我做了一個正確的面板

<local:RightSideContent x:Name="RightPanel" Grid.Column="1"> 

所以在MainWindow.xaml.cs,如果我要升到一個事件給這個小組,我做了像這樣的代碼:

public delegate void Event1(); 
public MainWindow() 
{ 
    this.InitializeComponent(); 
    Event1 obj = new Event1(this.RightPanel.func); 
    obj(); 
    // Insert code required on object creation below this point.   
} 

而且在RightPanel類,我聲明函數FUNC

問題是:如果我在RightPanel類中,我如何將事件提交到MainWindow,因爲我不能寫這樣的東西.RightPanel.func .....

而順便說一下,在另一個沒有xaml文件的類中,如果我想將事件引發到UserControl,我該怎麼辦?

+0

這只是我定義的事件,請參閱MainWindow.xaml.cs代碼! Sr,我點擊按鈕編輯,而不是添加註釋:( – duykhoa

+0

看看這個[創建自定義路由事件的MSDN頁面](http://msdn.microsoft.com/en-us/library/ms752288.aspx) –

回答

2

對不起,我沒有足夠的代表發表評論澄清,但正如我所看到的,有三種可能的事情你在這裏嘗試做。

  1. 您試圖從不在MainWindow中的代碼觸發MainWindow事件。在這種情況下,您需要確保您有對MainWindow的引用,並且在MainWindow上有一個公共方法將觸發該事件。

  2. 您希望MainWindow處理來自RightPanel的點擊等。在這種情況下,您只需在您的MainWindow上放置一個Button.Click =「blah」(或任何事件)屬性,並且它會捕獲任何不在下面處理的按鈕點擊。事實上,你甚至可以把它處理得更低,並確保你設置了EventArgs,這樣它就可以有效地處理,這樣你就可以更好地處理它。

  3. 您希望能夠處理在RightPanel中生成的自定義事件,類似於上述第2項中按鈕點擊場景的方式。在這種情況下,我會指導您參閱http://msdn.microsoft.com/en-us/library/ms742806.aspx這是WPF路由事件的文檔,您應該能夠解決如何從那裏創建您自己的RoutedEvent。

相關問題