C# UWP Windows 10.
В классе, который реализует INotifyPropertyChanged, есть некая строка к которой привязан TextBlock, работает все отлично, но в одном из случаев строке присваивается значения из другого потока Task и UI не реагирует на изменения.
Собственно вопрос - как заставить UI обновиться?
Пробовал присваивать значение через Dispatcher окна - не работает.
UPD
Вызов обновления переменной происходит в другом потоке:
...
await Window.Current.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
Balance = Account.GetBalance();
});
...
Код сеттера
public string Balance
{
get{...}
set
{
_balance = value;
NotifyPropertyChanged();
}
}
Все компилируется, нету никаких ошибок, просто когда код выполняется в Taskе - обновление UI не происходит, по дебаггеру значение меняется.
INotifyPropertyChangedиDataBinding? Тем более у меня нету доступа к форме из модели, взаимодействие в эту сторону возможно только через ивенты – SYL May 05 '16 at 13:37Dispatcherокна - не работает». Что это за описание, вы ж программист, надеюсь? Давайте код, и вместо «не работает» точное описание ошибки (exception? не компилируется?). И да, еслиTaskу вас бежит в другом потоке, то: (1) вы должны себе поставить вопрос, почему в другом, правильно ли это? (2) если всё же правильно,Dispatcher— верный путь, скорее всего ошибка в вашем коде. – VladD May 05 '16 at 13:59Window.Current, правильно ли оно сработает. Попробуйте разбить на куски:var w = Window.Current; var d = w.Dispatcher; ..., и посмотрите, то ли окно вам приходит. – VladD May 05 '16 at 14:27Windows.UI.Core.Dispatcher. – SYL May 05 '16 at 14:30Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcherи через ссылку на окно в котором находится текстовое полеApp.shell.Dispatcher- все тот же результат – SYL May 05 '16 at 14:35