StackPanel に含まれる静的ボタンの「Click」イベントに RoutedEvent をバインドするのは簡単です。RoutedEventArgsには、イベントのe.Sourceとしてボタンが含まれます。
XAML:
<StackPanel Grid.Column="1" Button.Click="RoutedEventHandler">
<Button Name="btn1" Content="btn1" />
<Button Name="btn2" Content="btn2" />
</StackPanel>
コードビハインド:
private void RoutedEventHandler(object sender, RoutedEventArgs e)
{
MessageBox.Show(((FrameworkElement)e.Source).Name);
}
ただし、「ListViewItem.MouseDoubleClick」でルーティング イベントを処理すると、期待される ListViewItem オブジェクトではなく、e.Sourceに ListView コンテナ オブジェクトが生成されます。
XAML:
<ListView Name="lbAnecdotes"
ListViewItem.MouseDoubleClick="RoutedEventHandler">
<ListView.ItemTemplate >
<DataTemplate>
<WrapPanel >
<TextBlock Text="{Binding Path=Name}" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView >
矛盾を説明できますか?