2012-09-13 68 views
0

我希望能夠幫助您瞭解如何在不使用ResourceDictionary Code-Behind(例如Styles.xaml.cs)的情況下處理來自ResourceDictionary(例如Styles.xaml)中控件的事件,這主要是因爲我希望Styles.xaml僅用於造型。如何處理來自ResourceDictionary的事件而不使用ResourceDictionary代碼隱藏?

我的方案是,我有一個自定義頁面,它使用DataTemplate樣式的ResourceDictionary(我正在使用TemplateSelector)。但是,我目前遇到的問題是處理事件。例如:

我有這個在我的Styles.xaml

. 
. 
<Button Click="Button_Click"/> 
. 

而且我宣佈這在CustomPage.xaml.cs

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    // some code 
} 

但是,它確實不行。有沒有什麼辦法可以明確地告訴我要使用該特定的事件處理程序來處理按鈕的單擊事件?另外,是否可以爲每個頁面設置不同的處理程序,例如

CustomPage2.xaml.cs:

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    // some different code from CustomPage.xaml.cs 
} 

謝謝!

+0

輸出窗口中的任何錯誤? –

+0

沒有。實際上,我並不是在尋找正確的語法,因爲這些只是簡單的代碼片段。我只是在尋找如何實施它的方法,因爲目前,我擁有的不是這樣,也不行。 – bloodfire1004

回答

2

答案很簡單:不要以這種方式處理事件。改爲使用綁定(特別是,如果您使用的是數據模板)。例如,對於Button

<Button Command="{Binding MyCommand}"> 

其中MyCommand是從數據上下文ICommand -implemented實例。

如果您不熟悉WPF中的數據綁定,請從here開始讀取。

相關問題