私のアプリケーションには、いくつかのボタンがあるデータテンプレートがあります。ページごとに異なるアクションが必要なため、これらのボタンのハンドラーをApplication.xaml.vb / csファイルではなく現在のページ(多くのページでこのテンプレートを使用しています)で起動するようにします。
はっきりしているといいのですが。
私のアプリケーションには、いくつかのボタンがあるデータテンプレートがあります。ページごとに異なるアクションが必要なため、これらのボタンのハンドラーをApplication.xaml.vb / csファイルではなく現在のページ(多くのページでこのテンプレートを使用しています)で起動するようにします。
はっきりしているといいのですが。
コマンドを使用してこれを実現できます。実行固有のButton
sにsを含めます。DataTemplate
Command
<Button Command="{x:Static MyCommands.SomeCommand}"/>
次に、それを使用する各ビューで:を処理DataTemplate
します。Command
<UserControl>
<UserCommand.CommandBindings>
<CommandBinding Command="{x:Static MyCommands.SomeCommand}"
Executed="_someHandler"/>
</UserCommand.CommandBindings>
</UserControl>
コメント後に編集:これらの手順に従ってResourceDictionary
コードビハインドを作成したら、通常の方法でイベントを接続するだけです。
でMyResources.xaml
:
<ListBox x:Key="myListBoxResource" ItemSelected="_listBox_ItemSelected"/>
次にMyResources.xaml.cs
:
private void _listBox_ItemSelected(object sender, EventArgs e)
{
...
}
コマンドではなくイベントを使用する場合は、Click
イベント ハンドラーに次のように記述します。
private void Button_Click(object sender, RoutedEventArgs e)
{
var dataItem = (FrameworkElement)sender).DataContext;
// process dataItem
}