|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
Привязка контролов к настройкам08.08.2013, 08:14. Показов 3095. Ответов 21
Метки нет (Все метки)
Здравствуйте, возникла проблема при привязке контролов в настройкам приложения.
Суть такая - есть форма, на ней контролы (в основном это ТабКонтрол и чекбоксы на вкладках), я забиндил свойства Чекед к настройкам приложения (Сеттинг.Дефолт) так вот - при загрузке приложения настройки не считываются, т.е. не применяются пока не будет открыта вкладка с этим контролом - например параметр из файла настройки имеет значение true, чекбокс к которому он прикреплен соответственно cheked - но при использовании в коде значения параметра или чекбокса его значение другое (фалс). Кто ниб сталкивался с таким? как бороться? и мб кто видел хорошее описание процесса биндинга контролов к настройкам приложения.
0
|
|
| 08.08.2013, 08:14 | |
|
Ответы с готовыми решениями:
21
Привязка контролов к окну [WPF] Привязка свойств контролов к значениям локальных переменных XAML. Выравнивание контролов в ToolBar и StatusBar. + ширина контролов в процентах |
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 08.08.2013, 22:38 [ТС] | |
|
а Setting чем не объект?
0
|
|
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
||
| 09.08.2013, 18:00 [ТС] | ||
|
0
|
||
| 09.08.2013, 18:11 | |
|
Я тогда не понимаю какое поведение требуется. Контрол не виден тогда какая разница какое у него состояние, есть же класс хранящий состояние контрола его вполне можно использовать. Даже если пользователь изменил состояние контрола произойдет изменение свойства в классе.
0
|
|
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 12.08.2013, 07:35 [ТС] | |
|
действительно, состояние контрола не имеет значения, но происходит вот такая картина (мб я как то не так привязку использую).
вот есть две вкладки на табконтроле, на вкладке 1 - чекбокс "включить звук", на вкладке 2 - чекбокс "показать подсказки". при выходе из приложения оба чекбокса включены, это видно в файле конфигурации, сохраненном на диске после выхода из приложения. при запуске приложения видна вкладка один, видно что чекбокс 1 (включить звук) включен и звук есть. но подсказок нет, хотя чекбокс 2 (включить подсказки) тоже должен быть активен, т.к. в настройках загруженных с диска привязанный к нему параметр активен, так же как и параметр привязанный к чекбоксу звук. но в реалиях пока вкладка два не будет активна - т.е. пока визуально чекбокс не виден правильное состояние не выставится. вроде понятно надеюсь объяснил картину... как быть то? п.с. получается чтоб применились сохраненные настройки - нужно пооткрывать все вкладки чтоб все контролы стали видимымы.
0
|
|
| 12.08.2013, 09:59 | ||||||||||||||||
|
Как осуществляется привязка данных?
Вот так? Класс для привязки
0
|
||||||||||||||||
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 12.08.2013, 16:36 [ТС] | |
|
примерно так и есть, ток реализовано штатными средствами студии, т.е. все через дизайнер. сами свойства контролов в коде я не задействую, использую поля класса, а контролами пользователь только меняет из формы настройки.
0
|
|
| 12.08.2013, 17:09 | |
|
В принципе поведение предсказуемого, если постараться то можно заставить объекты обновить привязку, вот только зачем. Ну висит CheckBox не видимый, некорректное у него состояние, ну и пускай, самое главное что мы работает с корректным состоянием, которое находится в привязываемом объекте.
0
|
|
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 12.08.2013, 17:20 [ТС] | |
|
если бы так было то и вопроса бы не было, а вот в объекте тоже не верное значение, - правильное получается когда контрол становится видимым
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 12.08.2013, 17:39 | |
|
hepper, вариантов у вас несколько:
1. В коде используются свойства контрола, вместо класса настроек. 2. Конфиг не сохраняется при выходе или настройка имеет область application. 3. Свойство Checked привязано более чем к одному свойству другого класса (классов).
0
|
|
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 12.08.2013, 18:54 [ТС] | |
|
1. нет контролы не используются.
2. сохранятся, после сохранения открывал блокнотом перепроверял 3. ммм...тут надо проверить...
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 12.08.2013, 20:25 | ||
|
0
|
||
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 12.08.2013, 20:50 [ТС] | |
|
проверил, все бинды верные. еще заметил происходит "пропадания" значения... значение забинденое на контрол меняется самопроизвольно...
вообще косяк с этими настройками...
0
|
|
| 13.08.2013, 09:32 | |
|
Что удалось откопать.
Если контрол не видимый, тогда привязка не работает. Я создал TextBox привязался к Visible, так вот если свойство установить в false, то контрол пропадает и обратное выставление свойства в true не помогает. Думаю так задумали в Microsoft. Ссылка на тему
0
|
|
|
Кодогенератор
200 / 200 / 51
Регистрация: 15.06.2011
Сообщений: 794
|
|
| 13.08.2013, 11:38 [ТС] | |
![]() бидаа.... спасибо за помощь.... оказывается при отрисовке/появлении вкладки надо обновлять биндинг... правда хз как обновить все сразу...
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 13.08.2013, 16:22 | ||
|
Вот минимальный пример с привязкой двух чекбоксов на разных закладках к двум свойствам в классе настроек: Sample.zip Пример тестирования после компиляции: 1. Запустить приложение 2. Тыкнуть по кнопке Show values 3. Чекнуть контрол на второй закладке (можно и на первой). 4. Тыкнуть кнопку — посмотреть на значения. 5. Закрыть приложение. 6. Открыть приложение. 7. Тыкнуть кнопку, чтобы проверить значения, не открывая вторую закладку. 8. Посмотреть на состояние контрола на второй закладке. Проверено на XP SP3: значения нормально сохраняются и восстанавливаются.
0
|
||
| 13.08.2013, 17:37 | |||||||||||
|
kolorotur, вы все правильно указали, только ваш код напрямую присваивает значение свойству Check из ресурсов.
0
|
|||||||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 13.08.2013, 17:54 | ||
|
Автор же тоже мышкой биндинги выставляет — у него студия, получается, какой-то другой код генерит.
0
|
||
| 13.08.2013, 17:54 | |
|
Помогаю со студенческими работами здесь
20
По настройкам По настройкам сети Что это жесткая привязка к точке входа, физическое смещение в файле, окрестность точки входа в файл, привязка? Подскажите по настройкам видео... Сброс к заводским настройкам Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|