2016-10-19 2 views
1

Ich habe zwei Datagrids (Datenraster 1 und 2), die aus einem separaten User Control gebunden werden:WPF Datagrid Höhe ist unendlich

 <Grid Grid.Row="1"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="auto" /> 
     </Grid.ColumnDefinitions> 

     <Grid Grid.Row="0" Grid.Column="0" >    
     <local:DATAGRID1 x:Name="DATAGRID1" /></Grid> 

     <Grid Grid.Row="1" Grid.Column="0"> 
     <local:DATAGRID2 x:Name="DATAGRID2" /> </Grid> 

     <Grid Grid.Row="0" x:Name="AddURLContainer" Grid.Column="1" > 
      <StackPanel> 
      <local:test1 x:Name="NewQueryControl"/> 
      <local:test2 x:Name="AddURLControl" /> 
      </StackPanel> 

     </Grid> 
     </Grid> 

Aber aus irgendeinem Grund die Datennetze mehr strecken als das Fenster und don nicht innerhalb der Fensterhöhe beschränken. Ich habe versucht, die Datagrids in einem Scroll-Viewer zu platzieren, aber die Bildlaufleiste verlässt auch das Fenster und wird nicht eingeschränkt. Ich kann nicht herausfinden, warum es das tut. Die Öffnungs Tags der tatsächlichen Datennetze sind (und sie sind in einer Benutzerverwaltung kein Stackpannel verpackt):

<DataGrid AutoGenerateColumns="False" 
      IsReadOnly="True" 
      SelectionMode="Single" 
      > 

Antwort

0

Schien festgelegt werden, wenn ich die oben genannten Hauptgitter Reihe von Eigenschaften ändern:

<Grid.RowDefinitions> 
     <RowDefinition Height="50"/> 
     <RowDefinition Height="auto" /> 
    </Grid.RowDefinitions> 

An:

<Grid.RowDefinitions> 
     <RowDefinition Height="50"/> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 

Seltsam fix, aber es funktioniert.

0

Warum verwenden * Breite und HEIGHT?

Verwenden Sie Auto:

<Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto" /> 
     <ColumnDefinition Width="Auto" /> 
    </Grid.ColumnDefinitions> 

Auto legen Sie die Größe, um es Inhalt zugewiesen wird.

+0

Die Spaltenbreite ist auf * eingestellt, da der Inhalt in "AddURLContainer" als reduziertes Fenster umgeschaltet wird. Selbst wenn ich sie alle als auto habe, schränkt sie die Datenraster innerhalb des Fensters immer noch nicht ein, die Datenraster überlaufen immer noch – Whirlwind991

+0

Überläufe auf was? auf "AddURLContainer"? – Rom

+0

Überläufe außerhalb des Hauptfensters - es wird nicht eingeschränkt. Du hast mir tatsächlich eine Idee gegeben und ich habe die Haupt-Elterncontainer überprüft und die Höhe von 'Auto' auf '*' geändert, seltsamerweise ... Wie du gesagt hast, wäre Auto passender gewesen als * aber * hat funktioniert – Whirlwind991