2011-06-22 133 views
1

我将代码列添加到datagrid视图。wpf datagrid仍然隐藏滚动条

public List<DateTime> DaysOfMonth { get; set; } 

    public static List<DateTime> GetDates(int year, int month) 
    { 
     return Enumerable.Range(1, DateTime.DaysInMonth(year, month)) 
         .Select(day => new DateTime(year, month, day)) 
         .ToList(); 
    } 


//add to datagrid 
      DaysOfMonth = GetDates(DateTime.Now.Year, DateTime.Now.Month); 

      Dps.Columns.Add(new DataGridTextColumn { Header = "Raw material" }); 
      Dps.Columns.Add(new DataGridTextColumn { Header = "Description" }); 
      Dps.Columns.Add(new DataGridTextColumn { Header = "Part No" }); 

      foreach (var d in DaysOfMonth) 
      { 
       Dps.Columns.Add(new DataGridTextColumn { Header = d.ToShortDateString() , FontSize = 14}); 
      } 

XAML:

<DataGrid Name="Dps" 
       Margin="2,2,2,2" 
       VerticalScrollBarVisibility="Visible" 
       HorizontalScrollBarVisibility="Visible" /> 

如果我有数据网格例如30列滚动仍有隐忧我不知道为什么。

回答

0

我依赖于DataGrid所在的容器。如果你是f.e.将它放在DataGrid刚刚增长的DataGrid中,并且不会有滚动条。

0

水平滚动条不会显示,除非您实际上在您的数据网格中有项目。

如果您将有DataGrid没有项目但列宽足以需要水平滚动条的场景,而不是使用DataGrid本身的ScrollBar属性......我发现更容易将DataGrid直接转换为ScrollViewer。

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="2,2,2,2"> 
    <DataGrid Name="Dps" /> 
</ScrollViewer>