Size: a a a

Xamarin Developers

2020 June 16

А

Александр in Xamarin Developers
спасибо))
источник

KA

Kirill Ashikhmin in Xamarin Developers
Александр
Я напиздел, похоже все таки оно задается, поставил событие на PropertyChanged, значение 0.8 туда приходит и задается, просто привязки срабатывают сразу после инициализации, и видят там еще 0,  а 0.8 присваивается уже после инициализации и после срабатывания привязок, а OnPropertyChanged не вызывается, поэтому второй раз геттер не вызывается
при созджании проперти есть параметр OnPropertyChanged, который можно передать, и он будет срабатывать, когда значение меняется
источник

А

Александр in Xamarin Developers
Kirill Ashikhmin
при созджании проперти есть параметр OnPropertyChanged, который можно передать, и он будет срабатывать, когда значение меняется
его не обязательно создавать же чтобы отрабатывали биндинги. Это типа доп
источник

KA

Kirill Ashikhmin in Xamarin Developers
Dmitry
у меня сейчас похожая ситуация. есть кнопка, у котороый свойство IsEnabled завязано на текстовое поле модели через конвертор. типа ели в Entry есть текст, то кнопка доступна. так этот IsEnabled при запуске вообще не реагирует ни на что.
у кнопки IsEnabled работает коряво. надо IsEnablel менять у Command, которая ей присваивается, тогда всё чётко
источник

KA

Kirill Ashikhmin in Xamarin Developers
Александр
его не обязательно создавать же чтобы отрабатывали биндинги. Это типа доп
ну да
источник

D

Dmitry in Xamarin Developers
Kirill Ashikhmin
у кнопки IsEnabled работает коряво. надо IsEnablel менять у Command, которая ей присваивается, тогда всё чётко
а можно подробнее? откуда у Command  IsEnabled ?
источник

KA

Kirill Ashikhmin in Xamarin Developers
Dmitry
а можно подробнее? откуда у Command  IsEnabled ?
Ну у Command это называется CanExecute
источник

D

Dmitry in Xamarin Developers
Kirill Ashikhmin
Ну у Command это называется CanExecute
ммм...не очень понимаю. завязать поле IsEnabled на CanExecute ?
источник

KA

Kirill Ashikhmin in Xamarin Developers
Dmitry
ммм...не очень понимаю. завязать поле IsEnabled на CanExecute ?
Нет. У кнопки IsEnabled не менять, а при условиях менять CanExecute у комманды
источник

D

Dmitry in Xamarin Developers
Kirill Ashikhmin
Нет. У кнопки IsEnabled не менять, а при условиях менять CanExecute у комманды
но кнопку всё равно можно будет нажимать?
источник

KA

Kirill Ashikhmin in Xamarin Developers
Dmitry
но кнопку всё равно можно будет нажимать?
Если CanExecute = false, то нет.
источник

KA

Kirill Ashikhmin in Xamarin Developers
Работает оно как и IsEnabled, но абсолютно корректно
источник

D

Dmitry in Xamarin Developers
Kirill Ashikhmin
Если CanExecute = false, то нет.
а, есть такой механизм. интересно, спасибо.
источник

А

Александр in Xamarin Developers
Kirill Ashikhmin
Работает оно как и IsEnabled, но абсолютно корректно
прям божественные костыли
источник

D

Dmitry in Xamarin Developers
Kirill Ashikhmin
Работает оно как и IsEnabled, но абсолютно корректно
а у них в багтрекере есть тикет по этом поводу? это же не нормально вроде как
источник

D

Dmitry in Xamarin Developers
источник

KA

Kirill Ashikhmin in Xamarin Developers
Александр
прям божественные костыли
Ну смотря с какой стороны посмотреть) Так по сути логично, что у комманды есть свойство соответствующее и оно отвечает за состояние кнопки. Толкьо вот ни где об этом упоминания не встречал..
источник

А

Александр in Xamarin Developers
>I understand how that can seem weird, but I think the explanation is pretty simple. It's all about the order in which the property values are applied. If you look at how the Command is implement, it just returns true for CanExecute whenever no condition is specified.

If the Command is assigned after the IsEnabled then it will override the IsEnabled value with true. If it is the other way around and IsEnabled is evaluated after you assign the Command the IsEnabled will be false. Good find though!

Please continue any further discussion in the linked issue above so it's easier to track this.
источник

А

Александр in Xamarin Developers
и тикет закрыт
источник

А

Александр in Xamarin Developers
короче если команда есть - то надо делать через команду
если команды нет - isEnabled будет отрабатывать нормально
источник