2017-07-27 24 views
0

在下面的代碼中,我想在用戶成功登錄後禁用登錄按鈕。我嘗試了一打「解決方案」,而不管我嘗試控件屬性的值是什麼一旦離開Click Routine,我就不會改變。如果我刪除「異步」代碼,一切都按預期工作。UWP控件屬性沒有從異步處理程序中更改

Private Async Sub ButtonLogin_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) 
    ' Login the user and then load data from the mobile app. 
    Dim Success As Boolean = False 
    If Await AuthenticateAsync() Then 
     ' Executing from a non-UI thread with helper method 
     Dim returnedFromUIThread As Integer = Await DispatcherHelper.ExecuteOnUIThreadAsync(
      Function() 
       ' Code to execute on main window's UI thread 
       ButtonLogin.Visibility = Visibility.Collapsed 
       ButtonLogin.IsEnabled = False 
       Return 1 
      End Function) 
    End If 
End Sub 
+1

我無法重現您的問題。你可以請[mcve]嗎? –

+0

我很高興提交完整的客戶端示例,但是您能否解釋如何在此處發佈它。評論被限制爲少於完整源代碼的字符。 –

+0

https://1drv.ms/u/s!AiKnn5ue9vJbgaZto5JmbV2kfEkH-g這裏是一個Visual Studio 2017 UWP項目的鏈接,顯示了這個問題。它仍然需要一個Facebook應用程序才能登錄到Azure服務器應用程序。它所做的只是登錄並嘗試在成功後禁用登錄按鈕。我剛剛使用了Azure提供的UWP示例ToDo服務器應用程序作爲演示,並添加了Facebook登錄信息。 –

回答

0

問題是在登錄後返回到MainPage的不同副本,並且我一直在修改的控件不是正在顯示的控件。在登錄之前,您需要保存任何控制狀態和對控件的引用,然後在登錄後重新加載所有內容。

相關問題