C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Задача тривиальная - сделать, что бы приложение запоминало ширину окна, а после открытия восстанавливала.
Добавляю в параметры проекта свойство Width типа Double. Меняю MainWindow():
Добавляю для окна обработчик на закрытие:
Ура, всё работает. Но, это с помощью кода. Пытаюсь сделать с помощью XAML - указываю для окна:
Не работает Как сделать привязку с помощью XAML? |
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
В книжке Мэтью Мак-Дональда сказано:
Цитата: попробовал заменить на
вижу сообщение об ошибке "Вложенные типы не поддерживаются: Properties.Settings". Исправлено 1 раз(а). Последнее : S-type, 29.09.16 12:33 |
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Добавил
изменил привязку:
Ура, всё заработало. Вопрос закрыт. |
Re: C# WPF привязка (binding) 2 | |
---|---|
Simple777 Сообщений: 33855 Дата регистрации: 05.11.2006 |
Редкое качество - самодостаточность!..
|
Re: C# WPF привязка (binding) 2 | |
---|---|
SoccerStudio Автор Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Сам с собой поговорил - сразу сам себя зауважал.
------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Бывает
|
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Вы бы в соседнюю тему посмотрели forum.foxclub.ru - может какие мысли есть?
|
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Итак, есть окно, которое помнит свои размеры и положение, а так же помнит установленный цвет фона или фоновую картинку.
Для сохранения информации используются параметры: [attachment 25961 s2.png] Всё работает так, всё прекрасно. Вопрос - можно что то из кода перенести в XAML? На сколько понимаю, можно сделать привязку ItemColor.IsChecked к Properties.Settings.Default.IsImage. А привязку Background к Properties.Settings.Default.Image или Properties.Settings.Default.Color можно как то сделать? Ведь она будет в зависимости от значения Properties.Settings.Default.IsImage? Исправлено 1 раз(а). Последнее : S-type, 30.09.16 12:25 |
Re: C# WPF привязка (binding) 2 | |
---|---|
SoccerStudio Автор Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Привязать можно практически все, за очень редкими исключениями. Лично я бы повыкинул на фиг все обработчики событий, прописанные в XAML. Не, так делать, конечно, можно, но это не есть айс, потому что теряется одна из основополагающих прелестей WPF - независимость внешнего вида от кода. Почитай про MVVM, думаю, сообразишь, что я имею ввиду. В основном разработчики WPF используют именно этот паттерн, хотя у него есть и свои недостатки, как правило, жалуются на тормоза при чересчур больших количествах привязок. Тем не менее... Лично мне нравилось использовать усеченный вариант - VVM. Т.е. на каждый экран делал свой view model и отдельно (иногда даже в другой сборке) view в Xaml. Причем использовать code-behind во view тоже практически не приходилось. Что же касается элемента M (model), то в качестве такового использовал всякие разные видные в данном контексте вещи (т.е. все классы и свойства, доступные для view model), не выделяя их в отдельные элементы. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Как можно выкинуть обработчик события MainWindow_Closing? |
Re: C# WPF привязка (binding) 2 | |
---|---|
SoccerStudio Автор Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Ну, в данном случае идет просто определение окна - железное и неизменяемое определение. Забили, скомпилировали - ок.
Попробуй написать приложение, у которого внешний вид окна кардинально меняется в зависимости от чего-либо. Тогда придешь к необходимости использовать стили и шаблоны, определяющие его внешний вид, и если функционал закрытия окна ты засунешь в шаблон, то приложение при закрытии окна всякий раз будет делать то, что прописано в его шаблоне. А что оно конкретно будет делать - это только дизайнер шаблона знает, может, матерный MessageBox выводить, а может и диск C форматировать. ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: C# WPF привязка (binding) 2 | |
---|---|
S-type Сообщений: 2969 Дата регистрации: 24.04.2004 |
Т.е. в данном случае обработчики всё таки лучше оставить?
|
Re: C# WPF привязка (binding) 2 | |
---|---|
SoccerStudio Автор Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
А это тебе решать, что для тебя лучше. Если нужно просто WPF-приложение "как на WinForms", или это просто некая "тренировка", то можно оставить. А если хочешь, чтобы внешний вид менялся, то там уже придется использовать шаблоны и стили. И тогда уже сам увидишь, что не стоит.
------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
© 2000-2024 Fox Club  |