2012-09-27 67 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

相關問題