wpf сетка данных все еще скрыта полоса прокрутки - PullRequest
1 голос
/ 22 июня 2011

Я добавляю столбцы кода в представление таблицы данных.

    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 столбцов все еще скрыта, я не понимаю, почему.

Ответы [ 2 ]

0 голосов
/ 22 июня 2011

Горизонтальная полоса прокрутки не будет отображаться, если у вас нет элементов в вашей сетке данных.

Если у вас будут сценарии, в которых в вашей DataGrid нет элементов, но столбцы достаточно широки, чтобы вместо них работала горизонтальная полоса прокруткисо свойствами ScrollBar самой DataGrid ... Я обнаружил, что вместо этого проще поместить DataGrid непосредственно в ScrollViewer.

<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="2,2,2,2">
    <DataGrid Name="Dps" />
</ScrollViewer>
0 голосов
/ 22 июня 2011

Я зависит от контейнера, в котором находится DataGrid. Если он есть в DataGrid, то DataGrid просто растет, и у вас не будет полос прокрутки.

...