У меня очень странная проблема. Если я установил привязку и изменил привязку к другому свойству, это не сработает.UWP: Замена привязки данных
Посмотрите на этом простом примере
lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("Subtotal"), Source = Order, Mode = BindingMode.OneWay });
lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("FinalTotal"), Source = Order, Mode = BindingMode.OneWay });
Когда FinalTotal изменяется, текст lblTotal будет НЕ быть изменен.
Теперь прокомментировал первую строку.
//lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("Subtotal"), Source = Order, Mode = BindingMode.OneWay });
lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("FinalTotal"), Source = Order, Mode = BindingMode.OneWay });
СЕЙЧАС ЭТО РАБОТАЕТ !!!! Изменение FinalTotal изменит текст lblTotal! Любая идея почему?
Также BindingOperations.ClearBinding() не доступен в UWP. Поэтому я попытался заменить его пустым связыванием, и он все еще не работает.
lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("Subtotal"), Source = Order, Mode = BindingMode.OneWay });
//remove binding - not sure if this is correct way to remove binding because
//BindingOperations.ClearBinding() isn't available in UWP!
BindingOperations.SetBinding(lblTotal, TextBlock.TextProperty, new Binding());
lblTotal.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("FinalTotal"), Source = Order, Mode = BindingMode.OneWay });
Мои вопросы: 1. Как заменить связывание в UWP? 2. Как удалить существующее привязку в UWP (т.е. эквивалентную функцию для BindingOperations.ClearBinding())?
Спасибо за любую помощь ...
Просто quess - может быть изменение BindingMode to TwoWay? – Sasha
Привет, Sasha, я пробовал это, но он все еще не работает :( – Sam
Должны быть установлены привязки к ошибкам для «Субтитры». В окне вывода отображаются ошибки привязки? – Sasha