我正在使用Windows Phone上的應用程序,並使用silverlight。 我有一些錯誤,用戶可以快速按下按鈕兩次,這將有效地執行2個WCF調用,因爲該操作被調用2次。如何在WCF異步調用運行時阻止輸入?
顯而易見的解決方案只是禁用按鈕,直到調用完成,但我想知道是否有一個更全面的解決方案,我不必爲每個操作實現這一點。我的應用程序使用了大約50個WCF方法,因此對於每一個單獨的動作/每個屏幕都實現這個過程會很繁瑣。
還有,用戶可以調用運行時,點擊手機返回鍵,開始點擊其他按鈕等情況......
任何人都知道這一個乾淨的解決方案?
事實上,如果你只是想阻止某些操作,這是行不通的。更好的解決方案可能是擁有一個靜態屬性IsNetworkBlocked,並將其綁定到僅啓動網絡調用的控件的IsHitTestable或IsEnabled。 –
實際上,這是我一起去的。事實證明,它對我所需要的很好。由於我使用mvvm並且所有ViewModel都從基礎模型繼承,所以實現起來很簡單。所以我簡單地在基礎模型中添加了一個名爲「IsBusy」的屬性,並對該屬性的矩形可見性進行了數據分析。除此之外,我還能夠在該矩形中放置一個細微的「工作」動畫,當我的應用程序與服務器進行通信時,給予了非常專業的感覺。謝謝安東尼! – Alexandre