2017-09-27 5 views
0

の負荷に非同期データをローディングピッカーコントロール、私は(http://developer.xamarin.com/guides/cross-platform/xamarin-forms/web-services/consuming/wcf/)WCF Webサービスでの作業、私は最近、Xamarinを使用してWebサービスに含めましたXamarinアプリを持っており、正常に動作しますXamarinフォーム - ページ

ListViewチュートリアルがあり、コントローラのコマンドを使用して非同期Webサービスを呼び出し、それをListviewにバインドすることができます。

私の問題では、フォームが読み込まれるときに非同期Webサービスデータをxamarinピッカーコントロールにロードする最も良い方法は何ですか?

私はviewmodelのコンストラクタで何かをやってみましたが、データが戻ってくる前に、制御データのレンダリング....

public class UserPreferencesViewModel : BaseViewModel 
    {... 

public UserPreferencesViewModel() 
    { 
     LoadDropdownData(); 
     //carries on while data is being queried 
    } 

    async Task LoadDropdownData() 
    { 

     Services = new ObservableRangeCollection<Service>(); 
     var services = await App.ServiceManager.GetServiceDataAsync(); 
     Services.ReplaceRange(services); 
    } 

そして私はRefreshCommandがないように、コマンドオブジェクトを使用するように見えることはできませんプロパティ。

また、私はピッカーの値を設定する必要がある嗜好データがあります。これを行うにはどうすればよいのでしょうか。

希望これは意味

+0

のいずれかを使用する非同期ので、あなたのコンストラクタで...正しく待つ:LoadDropdownDataを待つか、WCFサービスから非同期に来て、あなたのデータはあなたが使用することはできませんリストビュー – Unlockedluca

+0

を移入するかどうObservableCollectionsで作業ObservableCollectionsは方法を見て、コンストラクタで「待ちます」フォワード?私はすでにObservableRangeCollectionsをサービスタイプとして使用しています。 –

答えて

1

観察可能なコレクションにxamarinピッカーを割り当てられ、これが働いていたします。

関連する問題