#wpf #user-controls #datatemplate
#wpf #пользовательские элементы управления #datatemplate
Вопрос:
У меня 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:
Вы можете добавить 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;
}
Комментарии:
1. Верно, в конце концов, для этого и нужна маршрутизация событий.