在我的Windows Phone應用程序中,當按下導航到Page1的按鈕並在完成加載之前,我按下按鈕導航到Page2,我的應用程序崩潰。這是正確的嗎?實施這種行爲的最佳做法是什麼?Windows Phone應用程序在雙導航時崩潰
更新 一般來說,我認爲,對我來說最好的辦法,是阻止屏幕上的所有按鈕,其中一人被壓後,讓他們完成導航後積極,所以我怎麼能這樣做呢?
在我的Windows Phone應用程序中,當按下導航到Page1的按鈕並在完成加載之前,我按下按鈕導航到Page2,我的應用程序崩潰。這是正確的嗎?實施這種行爲的最佳做法是什麼?Windows Phone應用程序在雙導航時崩潰
更新 一般來說,我認爲,對我來說最好的辦法,是阻止屏幕上的所有按鈕,其中一人被壓後,讓他們完成導航後積極,所以我怎麼能這樣做呢?
最好的做法是在第一次點擊後禁用Click事件。 如果您的按鈕被評爲B,並且在任何指定的事件處理在XAML或隱藏代碼 像
b.Click += new RoutedEventHandler(ButtonOnClick);
void ButtonOnClick(object sender, RoutedEventArgs e)
{
b.Click -= new RoutedEventHandler(ButtonOnClick);
// Navigate away now.
}
其實我的樣本才停止雙擊當前的按鈕,但您可以禁用其他按鈕也是如此。
在我的一個應用程序中,我維護一個列表,我迭代和顯示/隱藏,啓用/禁用必需。你所做的只是迭代並設置正確的屬性。
foreach(var button in myButtons)
button.IsEnabled = false;
裹調用NavigationService.Navigate(Page2Uri)
到Dispatcher.BeginInvoke(()=> {...});
如下:
Dispatcher.BeginInvoke (()=> { NavigationService.Navigate(Page2Uri) });
非常感謝,我已更新我的問題 – revolutionkpi
有什麼異常? – Phil