2014-10-29 28 views
0

目前我正在使用WCF處理Xamarin.Forms應用程序。該應用程序與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; 
    } 
} 

當我調試,我可以看到Results.Name被填滿,但出於某種原因,它不更新命名標籤lblText。

此方法放置在App.cs(Xamarin Forms portable project)中。

任何人都可以幫助我解決這個問題嗎?

+0

你在UI線程更新lblText? – 2014-10-29 12:39:27

+0

我如何知道我在UI線程上?我嘗試了很多像InvokeOnMainThread(()=> {//操作UI控件 })的東西; 但似乎沒有更新標籤。 – Jos 2014-10-29 13:04:43

+0

你有沒有試過Xamarin.Forms.Device.BeginInvokeOnMainThread? – 2014-10-29 13:10:33

回答

0

應當刷新U.I在主線程,這裏是修復

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

    }