то всевозможные привязки в элементах через setbinding работают без проблем. А вот когда я пытаюсь сделать это на странице с гридом, это почему-то не работает. Для примера есть две кнопки, по нажатию "кнопки 1" делаю ее isenabled=false и хочу чтобы одновременно с этим "кнопка 2" также стала isenabled=false, но это не работает. Вот код.
//Создание кнопки 1 с событием изменения isenabled по нажатию
Button button1 = new Button { Text = "Кнопка 1"};
button1.Clicked += (sender, e) => { button1.IsEnabled = false; };
//Создание кнопки 2 с привязкой isenabled к параметру первой кнопки
Button button2 = new Button { Text = "Кнопка 2" };
button2.SetBinding(IsEnabledProperty, new Binding { Source = button1, Path = "isEnabled" });
или
Button button2 = new Button { Text = "Кнопка 2" };
button2.SetBinding(IsEnabledProperty, "isEnabled");
button2.BindingContext = button1;
Подскажите пожалуйста, что не так с привязкой?
IsEnabled у кнопок работает криво, если комманда задана. Лучше выставлять этот параметр именно у комманды, и это свойство автоматически кнопке присваивается и меняет её состояние
ясно,спасибо. как раз хотел не расписывать все изменения по нажатию вручную, если есть binding, но похоже придется )
кстати помогла вот эта статья с метанита https://metanit.com/sharp/xamarin/4.7.php с использованием вызова событий OnPropertyChanged изменения состояний и других параметров сразу отрабатываются и IsEnabled не исключение
Обсуждают сегодня