2015-07-28 14 views
8

Ho riferito questo Answer ma non funziona. La colonna si espande ancora sul contenuto della riga. le dimensioni delle colonne in qualche modo viene aggiornato quando cella è ri-arrangiatiSpecificare la cella DataGrid su più colonne

Screenshot: ColumnSpan Issue

mia abitudine DataGridCellsPanel.ArrangeOverride:

protected override Size ArrangeOverride(Size arrangeSize) 
{ 
    var firstCell = Children[0]; 
    firstCell.SetValue(Panel.HorizontalAlignmentProperty, HorizontalAlignment.Left); 
    firstCell.Arrange(new Rect(arrangeSize)); 

    for (int i = 1; i < Children.Count; i++) 
    { 
     var remainingCell = Children[i]; 
     remainingCell.Arrange(new Rect(0,0,0,0)); 
    } 
    return arrangeSize; 
} 

mio DataGridRow.Template:

<Style x:Key="SpanRowStyle" TargetType="DataGridRow"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type DataGridRow}"> 
       <Border> 
        <DataGridCellsPresenter Foreground="Black"> 
         <DataGridCellsPresenter.ItemsPanel> 
          <ItemsPanelTemplate> 
           <controls:DataGridSpannedCellPanel/> 
          </ItemsPanelTemplate> 
         </DataGridCellsPresenter.ItemsPanel> 
        </DataGridCellsPresenter> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

prega di aiuto.

+0

Impossibile capire nello screenshot se si tratta di più colonne o meno; sta funzionando in quell'esempio o no; aiuterebbe a mostrare quello che hai e quello che stai cercando di fare la prossima volta. La tua confusione rende la domanda confusa. Questo sembra un primo esempio di 'DataGrid' e utilizza la sua caratteristica RowDetails. – Kcvin

risposta

2

Trovato il problema. :)

Impostare ColumnWidth su Auto è stato il colpevole. impostandolo su valori statici ha funzionato bene.