2011-02-10 26 views
2

例如,我有一個XAML文件單擊事件按鈕: < 按鈕X:NAME = 「ButtonFindCoordinate」 CONTENT = 「座標映射」 點擊= 「ButtonFindCoordinate_Click」/>在xaml文件中,如何從另一個cs文件使用事件處理程序?

據我所知,此ButtonFindCoordinate_Click事件處理程序必須是來自cs文件後面的代碼的函數。有什麼辦法可以從這個xaml文件中的另一個cs文件引用一個事件處理程序(例如,此按鈕來自aa.xaml文件,並且我有一個保存在bb.cs中的事件處理函數)?我如何編寫這段代碼?

感謝,

回答

2

我會說,它通常更好的做法提取處理程序的邏輯放到一個單獨的類,然後同時具有點擊處理器調用此方法相同。

對於實施例

在A.xaml.cs

private void ButtonFindCoordinate_Click(object sender, EventArgs e) 
{ 
    string postCode = CoordinateFinder.FindPostCode(txtButtonFind.Text); 
} 

和B.xaml.cs

private void OtherButton_Click(object sender, EventArgs e) 
{ 
    string postCode = CoordinateFinder.FindPostCode(txtSomeOtherField.Text); 
} 

然後CoordinateFinder類可以是這樣的。

public class CoordinateFinder 
{ 
    public static string FindPostCode(string coordinates) 
    { 
     // shared code here. 
    } 

} 

我之所以說這是更好的做法,不是「共享」跨類click處理,就是你想你的代碼的可讀性和可維護性越好。

試想一下,如果你回來幾個月,看到B類單擊處理程序調用從A類單擊處理程序 - 現在你必須要閱讀的點擊處理程序,以發現它做什麼。

而且,如果你(或者有人在你的團隊)是更新aa.xaml.cs,他們可能會從aa.xaml哪個接入領域將打破bb.cs不知情的情況下。

希望有幫助 -

+0

謝謝,這有助於。 – lwconquer 2011-07-15 17:24:17

0

傳遞的aa.xaml到bb.cs參考和使用參考訪問事件。

+0

感謝您的回覆,但是如何將aa.xaml的引用傳遞給bb.cs?你能舉個例子嗎? – lwconquer 2011-02-10 03:08:37

相關問題