[.net] Как победить косяк в Data Binding в Application Settings?

agent007new

2008-я студия.
Простенькое Windows Forms приложеньице. Добавляем на форму вертикальный сплиттер, потом на левую панель добавляем горизонтальный сплиттер. В Properties (для каждой split панели) ->Data->Application Settings биндим оба сплиттера. Запускаем приложение, двигаем вертикальный сплиттер в сторону и отпускаем его там. Наводим мышкой на горизонтальный сплиттер, чтобы курсор стал в виде двух стрелочек и жмем левую кнопку мыши - вертикальный сплиттер возвращается на свое старое место. Если хоть один биндинг отключить, такого не происходит.

Varvara2002

Вставил SplitContainer, всё нормально.

agent007new

Мою попробуй запустить прогу - там и проект есть и собранная

Varvara2002

Твою версию и правил.

agent007new

А что ты там правил? Там же все готово

Varvara2002

Я тебя не понимаю.
То у тебя проблема какая-то, потом говоришь, что там всё готово.
Чего непонятного, взял твои исходники, вставил вместо чего-то там SplitContainer
и нет твоего бага.
http://www.rapidshare.ru/1032226

agent007new

Я тебя не понимаю.
То у тебя проблема какая-то, потом говоришь, что там всё готово.
В моей программке все настроено для воспроизведения ошибки, там ничего не нужно менять - просто взять, скомпилировать и запустить. Твоя програма работает потому, что у нее нет биндинга для горизонтального сплиттера, если его выставить, то воспроизводиться мой косяк. Идешь в Properties для splitContainer2 -> Data -> ApplicationSettings -> Splitter Distance выставляешь в HS или свою настройку можно завести. Компилируешь, запускаешь и воспроизводится

Varvara2002

Вот есть Splitter Distance.
Всё работает, не уж-то сложно самому потыкаться?
http://www.rapidshare.ru/1032319

agent007new

Всё работает, не уж-то сложно самому потыкаться?
Где там что у тебя работает? Охрененное решение - ты удалил из кода биндинги. Где у тебя сохраняется актуальное значение? Нахрена без этого биндить?

Dasar

как уточнение:
хочет, чтобы настроенное положение splitter-а автоматически сохранялось в application.config-е.
именно для этого он binding-и и делает.
а ты ему про что-то другое рассказываешь.

Varvara2002

Где у тебя сохраняется актуальное значение?
А сам не можешь сохранять?

zorin29

Конечно, эта задача алгоритмически разрешима, и можно все сохранять самому. Но топикстартер интересуется, почему не работает предназначенный для этого в .NET механизм.

agent007new

Не, дерьмо эти биндинги - нужно руками сохранять значения: если забиндить ClientSize, то свернув-развернув окно, окно становится совсем маленького размера.
Оставить комментарий
Имя или ник:
Комментарий: