0

ResourceDictionary コード ビハインド (Styles.xaml.cs など) を使用せずに ResourceDictionary (Styles.xaml など) のコントロールからイベントを処理する方法について助けてください。

私のシナリオは、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
}

ありがとうございました!

4

1 に答える 1

2

答えは簡単です。そのような方法でイベントを処理しないでください。代わりにバインディングを使用してください (特に、データ テンプレートを使用している場合)。例Button:

<Button Command="{Binding MyCommand}">

whereMyCommandは、ICommandデータ コンテキストから実装されたインスタンスです。

WPF のデータ バインディングに慣れていない場合は、ここから読み始めてください。

于 2012-09-13T06:36:24.107 に答える