Реализация поиска с заменой и сохранение строк данных... и подстава с RowDetails
Ну вот, новая рабочая неделя и началась. Но для меня рабочая неделя словно и не заканчивалась. Процесс по работе с представлениями таблиц базы данных в интерфейсе в полном ходу. Сегодня перешёл к следующим пунктам этапов реализации этого огромного и наисложнейшего контрола в моей программе. И вот сегодня с утра я приступил к реализацию механизма поиска и замены данных в таблице. Данных пока только отображенных в представлении. До аналогичного механизма поиска и замены, но уже по всей таблице SQLite- это задача будущего этапа, который пока не наступил, так как для этого сначала ещё нужно сделать интерфейс с элементами управления на панели макета окна. Так что вот так.
Сначала казалось, что сделать поиск и замену будет просто и быстро. Потому как у меня уже реализована сама функция поиска и замены в C#-классе, предоставляющем функционал для работы с рядами таблицы. Но вышло как всегда - долго и сложно. Иначе в моей работе не бывает. Пришлось опять справляться с валом косяков и ошибок, чтобы заставить всё работать так как надо.
Ну и вот, как видно на скриншоте, в работе поиск и замена. Оранжевым там подсвечены искомые значения. Искать можно как по одному столбцу таблицы, так и по нескольким сразу. С этим, короче, разобрались.
Ну и ещё нужно сказать об одной вещи, не самой радужной. Об одной подставе, которую мне сегодня преподнес контрол Авалонии "DataGrid". С этим я имел дело с самого утра, то есть с начала рабочего дня. И эта не самая благая весть мне впилила необходимость снова, в очередной раз, изобретать собственный велосипед. Так уже не раз бывало. Перед этим мне пришлось делать собственную реализацию, собственно, этого поиска вместо не работающего готового решения, которое я нашел в интернете. Ну а теперь - подстава с контролом DataGrid, который по неясным причинам отказался отображать развёртываемые (можно сказать) спойлеры под строками. То есть должно быть так: в XAML-разметке контрола задаётся шаблон для спойлеров строк а потом при нажатии на строки таблицы эти спойлеры должны разворачиваться. Но этого не случилось. DataGrid мне показал фигу вместо спойлеров. Так что вот такие несладкие пироги. Не работает эта штука почему-то. Что уже вынудило меня к началу изобретения своего велосипеда для того, чтобы сделать аналогичный функционал.
Для этого в таблицу я добавил дополнительный столбец, в ячейках которого отображается кнопка, при нажатии на которую будет открываться окно с дополнительным подробным содержанием для каждого ряда. Отображение этого столбца включается в настройках представления таблицы. Там будет выводиться список (в ряд, по горизонтали) данных из ячеек таблицы по текущему ряду, с дополнительной информацией - комментариями к столбцам. Или опционально там будут отображаться данные столбцов, которые были скрыты от отображения в рядах. И ещё опционально там будут отображаться данные из другой таблицы, которая была привязана с помощью внешних ключей. То есть родительская таблица будет отображать данные из привязанной внешним ключом дочерней таблицы. Так что вот так. Но до этого нужно ещё добраться. Это один из следующих моих этапов работы над контролом представления таблиц.
Ну и ещё, под конец дня, я сделал наконец-то сохранение данных из представления таблицы в таблицу файла базы данных SQLite. Наконец-то теперь можно сохранять изменения на диск компьютера. Только это пока работает для отдельных строк. Нужно ещё сделать и общее сохранение всех измененных, добавленных и удаленных данных таблицы. А это уже я оставил на завтра.
Ну и вот это пока что всё. День этот близится к концу, а я заканчиваю на сегодня и сворачиваюсь до завтра. Так что теперь уже до новых постов и до новых свершений.

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