"EhLib.Com"
https://forum.ehlib.com/ru/

ReadStorableSettings. Не работает Visible
https://forum.ehlib.com/ru/viewtopic.php?f=9&t=3071
Страница 1 из 1

Автор:  ndrnesterov [ 20 янв 2021, 10:59 ]
Заголовок сообщения:  ReadStorableSettings. Не работает Visible

Добрый день! Сегодня реализовал сохранение настроек сетки в реестр. Все отлично, за исключением того, что метод DataGridEh.ReadStorableSettings не меняет Visible. Предположим, я скрываю столбец Id и сохраняю в реестр. После чтения из реестра я вижу, что в Dictionary<string, object> у столбца Id, Visible указан false. Все отлично, но когда я все это передаю в метод DataGridEh.ReadStorableSettings, видимость остается. Подскажите, как это можно исправить?

Автор:  EhLibSupport [ 21 янв 2021, 12:47 ]
Заголовок сообщения:  Re: ReadStorableSettings. Не работает Visible

Добрый день.

----
Установка видимости столбца при чтении настроек выполняется в методе EhLib.WinForms.DataGridManager.ReadColumnSettings

Проверьте, останавливается ли отладчик на этом методе и присваивает ли значения свойству column.Visible.

----
В архиве библиотеки присутствует Демо проект.
Demos\DisplayLayoutStorableApp\DisplayLayoutStorableApp.csproj

В котором также сохраняется и восстанавливается видимость колонок.
Попробуйте сравнить использование метода grid.ReadStorableSettings в вашем проекте и в Демо проекте в методе DisplayLayoutStorableApp.BaseForm.ReadStorableSettings

Автор:  ndrnesterov [ 21 янв 2021, 14:52 ]
Заголовок сообщения:  Re: ReadStorableSettings. Не работает Visible

Кажется я догадался в чем проблема. Это логическая ошибка в моем коде. При чтении из реестра я записывал в object значение (false) не как bool, а как string.
Но в моем случае решение проблемы - это писать костыли, которые я очень не люблю. Я воспользовался примером из вашего руководства разработчика и добавил вот такой код в событие:

Код:

private void Table_GridColumnSettingsReading(object sender, EhLib.WinForms.DataGridColumnStorableSettingsReadingEventArgs e)
        {
            if (e.Settings.TryGetValue("Visible", out object visible))
            {
                if (visible != null) e.Column.Visible = visible.ToBool();
            }
        }

Автор:  viladygin [ 01 дек 2022, 03:29 ]
Заголовок сообщения:  Re: ReadStorableSettings. Не работает Visible

Я написал свой механизм, работает на 100%

Страница 1 из 1 Часовой пояс: UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/