2010-05-12 12 views
1

J'ai une grille de données dans une grille mais le scrollviewer n'est pas visible même si je l'ai fait automatiquement. Ci-dessous dans mon code. Je ne peux pas comprendre où est le problème.Scroll Viewer non visible dans wpf DataGrid


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

     <TextBlock Text="Doctor Name" Grid.Row="0" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Doctor Address" Grid.Row="1" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Entry Note" Grid.Row="2" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Join Date" Grid.Row="3" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Default Discount" Grid.Row="4" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Discount Valid Till" Grid.Row="5" Grid.Column="0" Margin="5,5,0,0"/> 
     <TextBlock Text="Employee Name" Grid.Row="6" Grid.Column="0" Margin="5,5,0,0"/> 

     <Grid Grid.Row="7" Grid.Column="0" Grid.ColumnSpan="2"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition></ColumnDefinition> 
       <ColumnDefinition></ColumnDefinition> 
       <ColumnDefinition></ColumnDefinition> 
      </Grid.ColumnDefinitions> 

      <TextBlock Text="Report Type" Grid.Row="0" Grid.Column="0" Margin="5,5,0,0"/> 
      <ComboBox Grid.Row="0" Grid.Column="1" Name="cmbReportType" Text="{Binding CurrentEntity.ReportType}"/> 
      <Button Grid.Row="0" Grid.Column="2" Name="btnAddDetail" Content="Add Details" Command="{Binding AddDetailsCommand}"/> 
     </Grid>   

     <TextBox Grid.Row="0" Grid.Column="1" Margin="5,5,0,0" Width="190" Name="txtDocName" Text="{Binding CurrentEntity.RefName}"/> 
     <TextBox Grid.Row="1" Grid.Column="1" Margin="5,5,0,0" Width="190" Height="75" Name="txtDocAddress" Text="{Binding CurrentEntity.RefAddress}"/> 
     <TextBox Grid.Row="2" Grid.Column="1" Margin="5,5,0,0" Width="190" Height="100" Name="txtEntryNote" Text="{Binding CurrentEntity.EntryNotes}"/> 

     <Custom:DatePicker Grid.Row="3" Grid.Column="1" Margin="5,3,0,0" Width="125" Name="dtpJoinDate" Height="24" HorizontalAlignment="Left" VerticalAlignment="Top" SelectedDate="{Binding CurrentEntity.DateStarted}" SelectedDateFormat="Short"/> 

     <TextBox Grid.Row="4" Grid.Column="1" Height="25" Width="75" Name="txtDefaultDiscount" HorizontalAlignment="Left" Margin="5,0,0,0" VerticalAlignment="Top" Text="{Binding CurrentEntity.DefaultDiscount}"/> 

     <Custom:DatePicker Grid.Row="5" Grid.Column="1" Margin="5,3,0,0" Width="125" Name="dtpValidTill" Height="24" HorizontalAlignment="Left" VerticalAlignment="Top" SelectedDate="{Binding CurrentEntity.DefaultDiscountValidTill}" SelectedDateFormat="Short"/> 

     <ComboBox Grid.Row="6" Grid.Column="1" Margin="5,3,0,0" Width="190" Height="30" Name="cmbEmployeeName" ItemsSource="{Binding Employees}" DisplayMemberPath="FullName" SelectedIndex="{Binding SelecteIndex}"> 

     </ComboBox> 

     <Custom:DataGrid Grid.Row="8" Grid.Column="0" Grid.ColumnSpan="2" ItemsSource="{Binding XYZ}" AutoGenerateColumns="False" Name="grdTestDept"> 
      <Custom:DataGrid.Columns> 
       <Custom:DataGridTextColumn Binding="{Binding dep_id}" Width="40" Header="ID"/> 
       <Custom:DataGridTextColumn Binding="{Binding dep_name}" Width="125" Header="Name"/> 
       <Custom:DataGridTextColumn Binding="{Binding default_data}" Width="100" Header="Default Data"/> 
      </Custom:DataGrid.Columns> 
     </Custom:DataGrid> 

    </Grid> 

    <Grid Grid.Row="0" Grid.Column="1" Grid.RowSpan="9"> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" MinWidth="43"></ColumnDefinition> 
      <ColumnDefinition Width="Auto" MinWidth="150"></ColumnDefinition> 
      <ColumnDefinition Width="Auto" MinWidth="50"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 

     <Grid.RowDefinitions> 
      <RowDefinition Height="34*" ></RowDefinition> 
      <RowDefinition Height="337.88*"></RowDefinition> 
     </Grid.RowDefinitions> 

     <TextBlock Text="Name: " Grid.Row="0" Grid.Column="0" Margin="5,4,0,0" /> 

     <cc:ValueEnabledCombo Grid.Column="1" x:Name="cmbfilEmployeeName" Width="150" Height="30" Margin="5,4,0,0" VerticalAlignment="Top" SelectedIndex="0" 
      ItemsSource="{Binding Employees}" DisplayMemberPath="FullName" SelectedValuePath="EmployeeId" cc:ValueEnabledCombo.SelectionChanged="{Binding SelectionChangedCommand}"> 

     </cc:ValueEnabledCombo> 

     <Button Grid.Column="2" Name="btnReport" Width="50" Content="Report" Height="28" Margin="5,4,0,0" Command="{Binding ReportCommand}" VerticalAlignment="Top" /> 
      <Grid Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"> 

       <Custom:DataGrid ItemsSource="{Binding DoctorList}" AutoGenerateColumns="False" Name="grdDoctor" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Auto"> 
        <Custom:DataGrid.Columns> 
         <Custom:DataGridTextColumn Binding="{Binding RefName}" Width="Auto" Header="Doctor Name"/> 
         <Custom:DataGridTextColumn Binding="{Binding EmployeeFullName}" Width="Auto" Header="Employee Name"/> 
        </Custom:DataGrid.Columns> 
       </Custom:DataGrid>      
      </Grid> 
    </Grid>  
</Grid> 

+0

Je l'ai eu. La définition de la hauteur maximale et de la largeur maximale a résolu le problème. – Johnny

+0

duplication possible de [comment puis-je activer les barres de défilement sur la base de données WPF?] (Http://stackoverflow.com/questions/673516/how-can-i-enable-scrollbars-on-the-wpf-datagrid) – MyDaftQuestions

Répondre

2

Kent Boogaart a posté la réponse ici:

how can I enable scrollbars on the WPF Datagrid?

Placez le DataGrid dans une grille, DockPanel, ContentControl ou directement dans la fenêtre. Un StackPanel orienté verticalement donnera à ses enfants l'espace vertical qu'ils demandent - même si cela signifie qu'il est rendu invisible.

Ma note: Il est probablement préférable de ne pas définir la hauteur et la largeur maximales. Laissez les seuls et laissez WPF s'occuper du redimensionnement pour vous.