Я создал элемент управления без внешнего вида, который будет использоваться в проекте Silverlight 4.Этот элемент управления содержит кнопку, и я хотел бы захватить событие щелчка.Generic.xaml содержит
<Style TargetType="TU:MyControl">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TU:MyControl" >
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" d:DesignWidth="550" d:DesignHeight="228">
<Grid Background="Silver">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150*"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition Width="150*"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" Margin="2" BorderBrush="DarkGray" BorderThickness="3"></Border>
<Border Grid.Column="2" Margin="2" BorderBrush="DarkGray" BorderThickness="3"></Border>
<StackPanel Grid.Column="1">
<Button Name="PART_MyClick" Height="32" Width="32" Margin="0,8,0,0"></Button>
</StackPanel>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
После исследования проблемы я считаю, что мне нужно добавить следующий атрибут в мой класс управления
[TemplatePart(Name = "PART_MyClick", Type = typeof(Button))]
Затем в конструкторе элементов управления я добавилследующий код
var myClick = GetTemplateChild("PART_MyClick") as Button;
if(myClick != null)
{
myClick.Click += (o, e) => DoThings();
}
при запуске, хотя переменная myClick всегда равна нулю, поэтому обработчик событий никогда не присоединяется.Не могли бы вы сказать мне, где я иду не так?Я новичок, поэтому, если это неправильный подход полностью, то любые советы по правильному подходу также будут с благодарностью приняты