powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / XAML инициализация свойств объекта
3 сообщений из 3, страница 1 из 1
XAML инициализация свойств объекта
    #38960169
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда объект загружается, на сколько я помню 1-ым свойством которое инициализируется является DataContext, потом инициализация свойств идет в порядке очереди расположения.
Теперь небольшой UseCase.
Есть некий класс наследованный от Control

аля MyControl : Control. в этом классе (контоле) есть 2 DP,
Property1 и Property2, когда инициализируется Property2, оно берет Property1 выполняет какую нибудь хрень и меняет состояние объекта.
Но программист в XAML напишет Property2="BlaBlaBla" Property="Blablalba", то в момент инициализации свойства Property2, свойство Property1 равно Null. Возникает вопрос, как то этого можно избежать?
Понятно дело, что этот метод смены состояния я могу разместить в PropertyChanged методе обоих свойств и если все условия (оба поля инициазированны) выполнить этот метод или выполнить его по события Loaded, так как оно вызывается после того инициализация и связывание завершены.
Но может существует какой то способ, или атрибутами это как то можно задать.
Заранее спасибо.
...
Рейтинг: 0 / 0
XAML инициализация свойств объекта
    #38961106
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да нормальный у тебя подход через Loaded. Ведь результат от этого не поменяется?

Как вариант, вспомни, есть ли такое поведение у каких-нибудь встроенных контролов, и посмотри их исходный код - как у них это сделано.

Нашёл только что-то подобное

http://stackoverflow.com/a/9744947
http://stackoverflow.com/a/25150498

Т. е. то порядок зависит от порядка регистрации, то от порядка установки свойств в замле. Похоже, автор и сам не знает. Выход - проверять самому. Т. е. сделать порядок в замле один, а порядок регистрации - другой. И какой из них сработает.

Но я бы на порядки эти не надеялся слишком - их могут и изменить в будущем парсере. Или в парсере WPF это может быть одно правило, а в парсере ModernUI - другое. И ты при переносе юзер контрола из WPF в MUI можешь об этом забыть. Полагаться на Loaded или что-то в этом роде - всё же надёжнее, я думаю.
...
Рейтинг: 0 / 0
XAML инициализация свойств объекта
    #38961110
Alexey2112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т. е. надо полагаться не на какие-то завихрения в умах тех, кто писал парсеры замла, а на более общую логику. Например, на правило "вся работа со свойствами только после их инициализации". Т. е. такой зависимости установки свойств, как у тебя, не должно быть до инициализации. Поэтому сначала парсер инициализирует их, а потом ты вводи зависимости между ними как хочешь.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / XAML инициализация свойств объекта
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]