【发布时间】:2015-06-09 23:42:54
【问题描述】:
我有一个文本框,当用户按下回车键时,我们执行 API 调用。但是,在此期间,我想更新 XAML 布局以显示进度条。然而,布局更新仅在方法完成后发生,这意味着在我们进行搜索时看不到进度条。
我们已经重写了 OnKeyDown 事件来处理用户按下回车键。
有没有办法在此方法期间强制更新 XAML 布局?
protected override void OnKeyDown(KeyRoutedEventArgs e)
{
if (e.Key == Windows.System.VirtualKey.Enter && (xaml_search_box.FocusState == Windows.UI.Xaml.FocusState.Pointer || xaml_search_box.FocusState == Windows.UI.Xaml.FocusState.Keyboard))
{
//We want to make the progressbar visible here
xaml_search_progressbar.Visibility = Windows.UI.Xaml.Visibility.Visible
//collapse keyboard
Windows.UI.ViewManagement.InputPane.GetForCurrentView().TryHide();
string _query = xaml_search_box.Text;
List<Task> tasks = new List<Task>();
//Long web request
Task t = Task.Run(() => APICall.BasicSearch(_query));
tasks.Add(t);
Task.WaitAll(tasks.ToArray());
m_results = APICall.m_basicsearch;
xaml_search_results.ItemsSource = m_results;
xaml_search_results_grid.ItemsSource = m_results;
}
base.OnKeyDown(e);
//Our layout is updated here, AFTER we have done the search making it pointless to show a loading bar
}
【问题讨论】:
标签: c# xaml windows-phone-8.1 win-universal-app