Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xamarin表单-WCF已完成事件未更改组件_C#_Wcf_Xamarin_Label_Xamarin.forms - Fatal编程技术网

C# Xamarin表单-WCF已完成事件未更改组件

C# Xamarin表单-WCF已完成事件未更改组件,c#,wcf,xamarin,label,xamarin.forms,C#,Wcf,Xamarin,Label,Xamarin.forms,目前我正在使用WCF开发Xamarin.Forms应用程序。该应用程序连接到WCF主机,我得到一个响应,但我不能对响应结果做任何事情 我认为处理响应的方法代码是: private static void ClientOnGetHelloDataCompleted(object sender, GetHelloDataCompletedEventsArgs getHelloDataCompletedEventArgs) { string msg = null; if(getHelloDataCo

目前我正在使用WCF开发Xamarin.Forms应用程序。该应用程序连接到WCF主机,我得到一个响应,但我不能对响应结果做任何事情

我认为处理响应的方法代码是:

private static void ClientOnGetHelloDataCompleted(object sender, GetHelloDataCompletedEventsArgs getHelloDataCompletedEventArgs)
{
string msg = null;

if(getHelloDataCompletedEventArgs.Error != null)
   {
      msg = getHelloDataCompletedEventArgs.Error.Message;
   }
   else if(getHelloDataCompletedEventArgs.Cancelled != null)
   {
      msg = "Request was cancelled";
   }
   else
   {
      lblText.Text = getHelloDataCompletedEventArgs.Results.Name;
   }
}
调试时可以看到结果。Name已填充,但由于某些原因,它不会更新名为lblText的标签

此方法位于de App.cs(Xamarin Forms portable项目)中


这里有人能帮我解决这个问题吗?

你应该刷新主线程中的U.I,这是修复方法

  else
  {  
         InvokeOnMainThread(() =>   lblText.Text =   getHelloDataCompletedEventArgs.Results.Name);

   }

您正在更新UI线程上的lblText吗?我如何知道我在UI线程上?我尝试了很多东西,比如InvokeOnMainThread(()=>{//操纵UI控件});但似乎没有任何东西可以更新标签。您是否尝试过Xamarin.Forms.Device.BeginInvokeOnMainThread?在获得蓝屏后,它突然开始工作。我认为Mac创建新版本的应用程序可能有问题。我发现调试在那个版本甚至不可能命中的断点处停止。似乎与Xamarin.Forms.Device.BeginInvokeOnMainThread:一起工作)