2013-03-14 2 views
0

이러한 상황에서 상위 컨트롤을 원본으로 가져 오는 방법. TextBlock은 툴팁에 액세스해야합니다.소스로 상위 부모 컨트롤

<Style TargetType="{x:Type Control}" x:Key="ErrorTemplate"> 
    <Style.Triggers> 
     <Trigger Property="Validation.HasError" Value="True"> 
      <Setter Property="ToolTip"> 
       <Setter.Value> 
        <Grid Margin="5"> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="Auto"/> 
          <ColumnDefinition Width="*"/> 
         </Grid.ColumnDefinitions> 
         <TextBlock Grid.Column="1" Margin="4, 0,0,0" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ToolTip}, Path=(Validation.Errors)[0].ErrorContent}"></TextBlock> 
        </Grid> 
       </Setter.Value> 
      </Setter> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

이 링크는 상대 소스와 바인딩에 대한 좋은 예입니다 : http://stackoverflow.com/questions/84278/how-do-i-use-wpf-bindings-with-relativesource – Lainezor

답변

0
<Setter Property="ToolTip"> 
        <Setter.Value> 
         <ToolTip DataContext="{Binding PlacementTarget, RelativeSource={RelativeSource Self}}"> 
          <Grid Margin="5"> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="Auto"/> 
            <ColumnDefinition Width="*"/> 
           </Grid.ColumnDefinitions> 
           <TextBlock Grid.Column="1" Margin="4, 0,0,0" Text="{Binding Path=(Validation.Errors)[0].ErrorContent}"></TextBlock> 
          </Grid> 
         </ToolTip> 
        </Setter.Value> 
       </Setter> 
관련 문제