2016-07-05 92 views
0

我有一個複選框,組合框一個StackPanel:自動更改列的寬度在XAML

<StackPanel Name="PointSizeFilter" 
      Style="{StaticResource StackPanelCell}"> 
    <CheckBox ... /> 
    <ComboBox ... /> 
</StackPanel> 

而且還有一個數據網格。當stackpanel的寬度發生變化時,我希望調整datagrid列的大小。

<DataGrid Style="{StaticResource DataGridEditable}" 
      ItemsSource="{Binding ElementName=IModel, Path=ControlPoints.Collection}" 
      Name="DataGridCheckpoints"> 
    <DataGrid.Columns> 
     ... 
     <DataGridComboBoxColumn Header="{x:Static constants:Labels.ControlPointsObjectSize}" 
           Width="{Binding ElementName=PointSizeFilter, Path=ActualWidth}" 
           ItemsSource="{Binding Source={x:Static controlpoints:CpViewModel.PointSizeItems}}" 
           DisplayMemberPath="Name" 
           SelectedValuePath="Id" 
           SelectedValueBinding="{Binding PointSizeId, UpdateSourceTrigger=PropertyChanged}"/>          
    </DataGrid.Columns> 
</DataGrid> 

但它不起作用。我究竟做錯了什麼?謝謝!

回答

0

一個可能的原因是DataGridColumn的Width屬性不是double作爲ActualWidth,而是DataGridLength類型。嘗試在兩者之間放置一個轉換器