2009-08-24 3 views
5

는 코드입니다.RelativeSource FindAncestor 문제

작동하지 않습니다 : 텍스트 블록의 너비가 항상 내부 텍스트와 일치합니다. 어떤 아이디어? ... 미리 감사드립니다!

답변

14

이 코드에서 두 가지 문제가

  1. GridViewColumn가 텍스트 상자의 시각적 조상이 아니다는 조상 당신은 GridViewColumnHeader 아니라 폭의 ActualWidth에 결합해야 GridViewColumnHeader
  2. (이다 폭이 지정되지 않은 경우, 그것은 것입니다 잘못된 번호)

그래서 코드가됩니다 :

   <GridViewColumn 
          DisplayMemberBinding="{Binding Path=BookId}" 
          Width="100"> 
       <GridViewColumn.Header> 
        <Border BorderBrush="Black" > 
         <TextBlock Text="ID" Width="{Binding RelativeSource= 
                 {RelativeSource FindAncestor, 
                 AncestorType={x:Type GridViewColumnHeader}}, 
                 Path=ActualWidth}"> 
          <TextBlock.ContextMenu> 
           <ContextMenu>item1</ContextMenu> 
          </TextBlock.ContextMenu> 
         </TextBlock> 
         </Border> 
       </GridViewColumn.Header> 
      </GridViewColumn> 
관련 문제