2012-09-27 41 views
1

用户控件具有以下控制模板如何从控件模板中按钮的单击事件获取父项?

<ControlTemplate x:Key="MarkerTemplate" > 
     <ToggleButton x:Name="btnMarkerPin" Click="btnMarkerPin_Click" > 
      <ToggleButton.Template> 
       <ControlTemplate> 
        <Grid> 
         <Ellipse Fill="Green" Width="25" Height="25" VerticalAlignment="Center" HorizontalAlignment="Center" ToolTip="{Binding}" /> 
     </Grid> 
       </ControlTemplate> 
      </ToggleButton.Template>    
     </ToggleButton> 

通过btnMarkerPin_Click事件我能得到切换按钮对象作为发送者,但要求是获得了应用该模板的父对象。

回答

2
var templatedParent = ((ToggleButton)sender).TemplatedParent; 
+0

我用的是'VisualTreeHelper.GetParent()'来获得'ContentPresenter',这是迄今为止更具可读性(甚至更多的性能,明智的,因为我并不需要一个递归循环了)。谢谢。 – Dinei

相关问题