2010-05-12 80 views
1

不可见我有一个格子一个DataGrid,但ScrollViewer中是不是都看得到,即使我做到了汽车。 在我的代码下面。我无法弄清楚问题出在哪里。滚动浏览器在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

我明白了。设置最大高度和最大宽度解决了问题。 – Johnny 2010-05-13 06:51:36

+0

可能重复的[如何启用WPF Datagrid上的滚动条?](http://stackoverflow.com/questions/673516/how-can-i-enable-scrollbars-on-the-wpf-datagrid) – MyDaftQuestions 2014-06-23 12:02:17

回答

2

肯特Boogaart张贴在这里的答案:

how can I enable scrollbars on the WPF Datagrid?

将DataGrid放入网格,DockPanel,ContentControl或直接放入窗口中。一个垂直定向的StackPanel将给予它的子女他们要求的任何垂直空间 - 即使这意味着它被渲染出视野。

我的注意:这可能是最好不要设置最大高度和宽度。让这些人独自一人,让WPF负责为你调整大小。