メソッド呼び出し中にプログレスバーを表示したい。私はこのチケットに示唆しているようにそれを処理しました:ProgressBar button doesn't show while service call in windows store appWindowsストアアプリケーションでProgressBarを管理するためにawaitメソッドでイベント発生を処理する方法は?
現在のイベントの内部を呼び出すイベントを待つことはありません。 すなわち
public async void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
loading.Visibility = Windows.UI.Xaml.Visibility.Visible;
await initializeThePage();
loading.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
//following method doesn't wait for SelectionChanged event. It should wait
private async Task initializeThePage()
{
//few service call here
cmdStore.SelectedIndex = 1; //this should wait until cmdStore_SelectionChanged complete its call
}
private async void cmdStore_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//few service call here
loading.Visibility = Windows.UI.Xaml.Visibility.Visible;
await getOrderlistAccordingToStore(storeID); //get store details
loading.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
public async Task getOrderlistAccordingToStore(int storeID)
{
//calls of get orderlist according to selected store
}
ときcmdStore.SelectedIndex = 1;
呼び出し、それがcmdStore_SelectionChanged
メソッドを呼び出します。この場合、await initializeThePage();
はcmdStore_SelectionChanged
が完了するまで待つ必要があります。しかし、このイベントを待つことはなく、次回の実行を継続します。
現在の電話を待っているイベントを処理する方法を教えてください。
'cmdStore.SelectedIndex = 1;を設定した後、' SelectedIndex'に依存する 'initializeThePage'の中に何かがありますか? –
@AdnanUmerいいえ、 'cmdStore.SelectedIndex' called.cmdStore.SelectedIndex = 1;'呼び出しの後には何も依存しません。コールはストアデータを取得し、画面にデータを表示します。 –