2011-12-17 48 views
0

WPF中有沒有辦法讓事件(例如Click)在不同的.cs文件中使用該方法,而不是MainWindow.xaml.cs(例如)?換句話說,當我去選擇鼠標按下事件,並雙擊它來編寫方法 - 該方法出現在MainWindow.xaml.cs ..有沒有辦法將其重定向到另一個文件?我需要獲得所有屬性/域,我使用(如文本框,按鈕等),它們在主窗口的.....如何創建不同的.cs文件

在我MainWindow.xaml,我有處理gotFocuslostFocus等方法。我不想在同一個文件中處理套接字和連接(因爲我覺得這是糟糕的設計)。如我錯了請糾正我。

回答

3

如果你真的想要,你可以創建一個Partial Class 來放置你的事件處理程序。它仍然是MainWindow類的一部分,但它將在不同的文件中。

也就是說,更好的設計是將處理套接字和連接的代碼移出到它自己的類或類中,同時將事件處理代碼留在MainWindow.xaml.cs中。在這種情況下,部分班級並不是真正的正確工具,IMO。

+0

是的,這正是我想要做的 - 但如果我想添加一個事件...說「somethingClick」,當我選擇「MouseDown事件」來寫它的方法,不會被定向到MainWindow.xaml .cs文件?我將如何重新引導這個進入我自己的課堂? – BigBug 2011-12-17 04:31:31

1

如果你的想法是消除用戶界面和代碼隱藏然後可能是最好的主意之間的依賴關係,因爲你使用WPF是MVVM模式。所以你說你的觀點不需要知道當你點擊按鈕時發生了什麼。或者你可以考慮ICommand來將命令從代碼中分離出來。就像@ Mead'Dib所推薦的一樣。

您可以探索的其他領域是思考類似命令模式的地方,您可以在其中分隔Receiver和調用者。這樣你就不會與後面的代碼緊密結合。所以只要考慮使用某種模式,這將使您在維護問題時更安全。

相關問題