2010-04-28 70 views
3

我想將列標題的Width綁定到定義的標頭的Width。但是代碼不起作用。如果我明確指定Width(寬度=「100」),則它工作正常。有人可以點亮一些燈並告訴我下面的代碼有什麼問題嗎?將UI元素的綁定寬度設置爲另一個UI元素的寬度

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100"> 
     <dataGrid:DataGridTemplateColumn.Header> 
      <Grid HorizontalAlignment="Stretch"> 
       <TextBlock Text="PDP" VerticalAlignment="Center" HorizontalAlignment="Center" 
        TextWrapping="Wrap" Width="{Binding ElementName=pdpCol,Path=ActualWidth }" TextAlignment="Center" /> 
      </Grid> 
     </dataGrid:DataGridTemplateColumn.Header> 
</dataGrid:DataGridTemplateColumn> 

回答

0

檢查ActualWidth正在建立,我認爲它會工作,如果你只使用Path=Width

+2

僅供參考 - 即在一般情況下,不正確。 ActualWidth始終(自動)在UIElement上設置,並且是隻讀的。很奇怪的是,UIElement的實際寬度。寬度屬性可能會或可能不會被設置。 – 2010-04-28 14:43:00

+0

我曾經有過ActualWidth爲空而Width是正確值的情況。在與發佈的問題非常相似的情況下。 – 2010-04-28 15:58:08

1

嘗試下面的標記。請注意使用HeaderStyle來拉伸模板和HeaderTemplate以實際定義您的Header="PDP"項目的可視模板。

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100" Header="PDP"> 
    <dataGrid:DataGridTemplateColumn.HeaderStyle> 
     <Style TargetType="{x:Type Primitives:DataGridColumnHeader}"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
       <Setter Property="VerticalContentAlignment" Value="Center" /> 
     </Style> 
    </dataGrid:DataGridTemplateColumn.HeaderStyle> 
    <dataGrid:DataGridTemplateColumn.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" TextAlignment="Center" /> 
     </DataTemplate> 
    </dataGrid:DataGridTemplateColumn.HeaderTemplate> 
</dataGrid:DataGridTemplateColumn> 
4

取下的TextBlock的HorizontalAlignment="Center"或屬性設置爲Stretch。然後TextBlock將自動消耗所有可用寬度。此外,如果您不顯示任何其他文本塊,請移除網格並僅使用TextBlock。您還需要直接設置HeaderTemplate而不是Header。

<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100" Header="PDP"> 
    <dataGrid:DataGridTemplateColumn.HeaderTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" TextAlign="Center" /> 
     </DataTemplate> 
    </dataGrid:DataGridTemplateColumn.HeaderTemplate> 
</dataGrid:DataGridTemplateColumn> 

最好的問候,
奧利弗Hanappi