Всё ещё работаю над диалогом для вставки данных в таблицу!!!!
Да уж, работа над одним диалоговым окном по продолжительности у меня побила все рекорды. Завтра закончится уже вторая неделя. Ну а вчера я что-то не счел необходимостью добавить пост. Да и что там было написать? Что я воткнул в верстку окна очередную парочку контролов? Ну да ладно, не только. Ещё я вчера немножко расширил функционал таблиц. А именно, в настройках столбцов таблиц добавил возможность задания парочки атрибутов - это скрытый режим столбцов и доступность их содержимого только для чтения. Записать в такие столбцы значения можно, а вот изменить - уже нет. Конечно, пока включен данный атрибут столбца. Да и в сторонних редакторах эта возможность, разумеется, работать не будет. Да и скрытый режим - это сокрытие данных столбца при их просмотре или редактировании. Просто прячем от любопытных глаз и всё тут.
Ещё в диалоговом окне я вчера реализовал возможность уже сохранения данных в таблицах. Уже работает, нормально работает.

Вот она, многострочная вставка данных. Работа над ним ужу приближается к завершению. И уже завтра, полагаю, я наконец-то закончу этот нескончаемый диалог. Осталось только добавить несколько контролов для редактирования специфичных данных в этой сетке.
Окно можно растянуть. Да и нужно, потому как столбцов может быть много и их тут нужно редактировать в один ряд из редактируемых элементов в сетке.
Да и надо ещё сказать одну не слишком радостную вещь. Это стало постоянством, но всё ещё расстраивает. А именно постоянно сталкиваешься с неприятными сюрпризами. Вот и на этот раз не обошлось без них. А дело в реализации привязки данных к сетке данных контрола "DataGrid". Тут, при выводе не определенного количества столбцов я не мог использовать заранее определенные объекты со свойствами для отображения данных в этой сетке. Мне пришлось использовать динамическую генерацию табличных данных с помощью специального .NET объекта - DataTable. Штука позволяет вывести любое произвольное количество столбцов, но вот работать с привязками в автоматическом режиме - обломись! Привязки данных не работают при редактировании элементов сетки. То есть внесённые изменения тупо никуда не сохраняются! Ну и что же я? Да как всегда, пришлось городить кучу костылей и огородов чтобы эта возможность работала без привязок. Короче, некрасивая реализация. Но она хотя-бы работает. Потому что вместо привязок через XAML-разметку табличные данные в DataGrid приходится вручную впихивать на бэкенд-стороне. Вот такие пироги.
Ну а вот, на скриншоте выше, у меня цветовая палитра, выпадающая из редактируемой клетки сетки. Реализация оказалась неудачная, потому что как только ты ткнёшь на цветовой квадрат или ползунок, то этот выпадающий элемент сразу закроется, что крайне неудобно, если нужно понастраивать цвет. Цвет, конечно, сохраняется, но только тот, в который успеешь ткнуть до закрытия popup-а. Так что вместо выпадающего элемента придется делать контрол-редактор цвета с диалоговым окном. Но это, надо полагать, недолго.
Такая схема (с реализацией динамической генерации табличных данных) тут может прокатит. Но вот для своего главного, самого главного контрола, который будет выводить всё содержимое таблиц и базы данных, это ну ни как не годится. Там всё нужно будет делать безупречно. Потому что этот контрол будет лицом моей программы. Для него нужно будет придумать другую схему. Это либо свой контрол, либо DataGrid, но с работающими привязками. А при таком варианте мне придется городить кучу десятков предопределенных C#-классов для отображения в качестве моделей-представлений в контроле DataGrid. И при этом количество столбцов таблиц будет ограничено. Так что вот так.
Ну да ладно, этот день уже пора заканчивать. Время уже позднее. Так что на этом у меня всё и до новых постов, до новых свершений.



Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.