当我试图改变变量的值时
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<status>(this, async Status=>
{
this.txt1.text = "Hi"
});
我真的很困惑如何处理这个错误
当我试图改变变量的值时
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<status>(this, async Status=>
{
this.txt1.text = "Hi"
});
我真的很困惑如何处理这个错误
您只能从主 UI 线程更新 UI。为此,您需要使用 Device.BeginInvokeOnMainThread 方法在 UI 线程上调用对 UI 的更新。像这样:
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<status>(this, async Status=>
{
Device.BeginInvokeOnMainThread(() =>
{
this.txt1.text = "Hi";
});
});
每个平台都有自己的在 UI 线程上调用的本机方法。在 WinPhone 中:
GalaSoft.MvvmLight.Messaging.Messenger.Default.Register<status>(this, async Status=>
{
var coreWindow = CoreWindow.GetForCurrentThread();
// Dispatcher needed to run on UI Thread
dispatcher = coreWindow.Dispatcher;
// RunAsync all of the UI info.
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
this.txt1.text = "Hi";
});
});