Обработка событий Application.Resources, где они используются - PullRequest
0 голосов
/ 01 ноября 2011

У меня есть Button внутри application.resources DataTemplate:

<DataTemplate x:Key="contactItem" DataType="{x:Type Model:Contact}">
<Button x:Name="openButton" Style="{StaticResource openButton}"/>
</DataTemplate>

Как я могу обработать openButton клик UserControl?

<ItemsControl ItemSource="{Binding CurrentContacts}" ItemTemplate="{StaticResource contactItem}">
</ItemsControl>

1 Ответ

2 голосов
/ 01 ноября 2011

Вы можете добавить обработчик ButtonBase.Click к ItemsControl.

 <ItemsControl ButtonBase.Click="MyItemsControl_Click">
  </ItemsControl>

Внутри кода этого обработчика событий вы можете использовать свойство DataContext e.OriginalSource (оно должно быть типа Button) для доступа к объекту, связанному с данными.

private void MyItemsControl_Click(object sender, RoutedEventArgs e)
{
    var myDataObject = ((Button)e.OriginalSource).DataContext;
}
...