@WSGlebKavash

Как сделать динамически заполняемую таблицу WPF?

Пример:
657426f4391a6001375845.jpeg
Необходимо реализовать интерфейс для создания отчётов в WPF. Самый простой отчёт - это посещаемость компании в определённый перриод времени по дням. Для этого необходимо создать таблицу, где каждая колонка будет соответствовать дате. Я смог сделать DataGrid с автоматической генерацией колонок. Как теперь прибиндиться к этим колонкам?
Как создать динамически заполняемую таблицу C# WPF .NETFramework?
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ответы на вопрос 1
@WSGlebKavash Автор вопроса
Я нашёл решение проблемы: WPF поддерживает биндинг к итерируемым структурам (массивы, списки, словари, ObservableCollection и т. д.), однако простой передачей аргумента сделать это не получится. Нужен параметр PropertyPath(bindingObject, parameter).Конструкция для Binding примерно такая:
for (DateTime i = startDate; i != endDate; i = i.AddDays(1))
{
    dateDic.date[i] = _rnd.Next(1, 10).ToString();
    DgForm.Columns.Add(new DataGridTextColumn()
    {
        Header = i.ToString("dd.MM.yyyy"),
        Binding = new Binding()
        {
            Path = new PropertyPath("date[(0)]", i)
        }
    } );
}
В данном случае мы ориентируемся на дату, поэтому логичнее всего использовать Dictionary<DateTime, string>. Можно также использовать словари с ключём string или массивы, для чего можно создать инкрементируемую переменную.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы