2013-02-12 50 views
0

我有一個DataGrid w/3列。第一列單元格是用戶可以從中選擇不同長度值的組合。我希望第一列顯示所選項目的全部值(即,它應該調整大小以適合其內容)。這個工程當我設置列的寬度=「自動」。問題是在某個時候,當網格的整個寬度被佔用時,滾動條出現。相反,我寧願數據網格本身總是擴展,因此它的容器。我怎麼能做到這一點.. 我的XAML的結構如下當列內容發生變化時展開datagrid的容器

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="Auto"/> 
    </Grid.ColumnDefinitions> 
    <local:MyUserControl... Grid.Col="1"> 
    <Expander Grid.Column="2"> 
     <GroupBox Template="{Binding OptionsSelectorTemplate}" Grid.Row="1" /> 
    </Expander 
</Grid> 

<ControlTemplate x:Key="OptionsSelectorTemplate"> 
    <StackPanel Orientation="Vertical"> 
     <dxl:NavBarControl...> 
      <dxn:NavBarControl.Groups> 
       <dxn:NavBarGroup Header="Options Set 1"> 
        <DataGrid Style="{StaticResource DataGridTemplateStyle}" ItemSource="{Binding ViewModel.Options}" DataContext="{Binding .}"/> 
       </dxn:NavBarGroup> 
       <dxn:NavBarGroup Header="Options Set 2"> 
        <DataGrid Style="{StaticResource DataGridTemplateStyle}" ItemSource="{Binding ViewModel.Options}" DataContext="{Binding .}"/> 
       </dxn:NavBarGroup> 
     </dxl:NavBarControl...> 
     <Button ... /> 
    </StackPanel> 
</ControlTemplate> 

<Style x:Key="DataGridTemplateStyle" TargetType="DataGrid"> 
    <Setter Property="Template" Value="{StaticResource DataGridTemplate}" /> 
</Style>  

<ControlTemplate x:Key="DataGridTemplate"> 
    <DockPanel HorizontalAlignment="Stretch"> 
     <DataGrid Name="_dataGrid" 
       AutoGenerateColumns="False" RowHeaderWidth="0" HeadersVisibility="Column" CanUserAddRows="False" GridLinesVisibility="None" HorizontalAlignment="Stretch" KeyboardNavigation.TabNavigation="Cycle"> 

      <DataGrid.Columns> 
       <DataGridTemplateColumn Header="Col1" MinWidth="75" Width="Auto" KeyboardNavigation.IsTabStop="False"> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <ComboBox.../> <---Want this guy to size to always fit the selected list item and to expand the entire datagrid if need be w/o displaying horizontal scroll bar. 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
       <DataGridTemplateColumn Header="Weight" MinWidth="40" > 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <Border > 
           <TextBox T../> 
          </Border> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
       <DataGridTemplateColumn Header="NN" Width="30"> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox .../> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn> 
      </DataGrid.Columns> 
     </DataGrid> 

    </DockPanel> 
</ControlTemplate> 

回答

0

貌似按照文檔的DataGrid列只在一個direction..that調整時,他們只得到更廣泛的,不窄。

相關問題