Что из себя представляет DataGrid WPF

Добавлено пользователем 21.02.2016

DataGrid WPFЭта статья посвящена работе с WPF-элементами управления, а именно мы затронем работу с ComboBox и DatePicker, которые находятся внутри DataGrid WPF. Одной из обнаруженных проблем стало взаимодействие между пользователем и полями даты DataGrid. Был создан DataGrid через перетаскивание объекта Data Source в окно управления WPF. По умолчанию дизайнером создается DatePicker для каждого конкретного значения DateTime внутри объекта. К примеру, столбец, который был создан для поля DateScheduled. При изменении, активные строки не изменялись, так как в DatePicker не был инициирован режим редактирования в DataGrid, поэтому связывание с данными не допускало передачи изменений в нижележащий объект. Добавляем к элементу Binding атрибут UpdateSourceTrigger и в PropertyChanged присваиваем значения, что помогает решить эту проблему. Нужно вернуться и исправить Scheduled Date. Теперь значок календаря DatePicker в строках не отображается.

Дальше модифицируем конструктор класса ScheduleIte – он должен инициализировать новые объекты текущей датой. Уменьшаем число щелчков, нужных для перехода к редактированию. Одно из неудобств шаблона из 2-ух частей – то двойной щелчек на ячейку для запуска DatePicker. Для начала добавляем Grid в CellEditingTemplate, чтобы сделать его контейнером для DatePicker.

После, используем WPF FocusManager и делаем Grid фокальной точкой ячейки, если пользователь переходит в даннуб ячейку. Нужно, чтобы показывались устаревшие данные, даже если они не содержатся в новом списке. Но это довольно сложно и запутанно. Гораздо проще использовать встраивание ComboBox в DataGridTemplateColumn.

WPF-средства связывания с данными невероятно экономят время, нужно тщательно продумывать удобства в работе — особенно комбинируя с DatePicker и ComboBox.

Похожие посты:

Удобство использования MVVM WPF
Способы создания WPF анимации
Работаем с WPF стилями

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Important: If you add a link to your comment it will not be published.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>