我的page1有一个打开page2的按钮。 Page2打开大约需要1秒钟,其中包含一个选项列表(用户控件),当点击时,保存选择并将用户返回到page1。
当用户点击第1页上的按钮时,如果他们变得不耐烦,他们将在加载/显示第2页之前再次点击它。问题是,即使它尚未可见,也会识别点击并点击第2页上的第一个选项。然后保存选择并将用户返回到page1。
无论如何,我可以停止识别点击/点击事件,直到page2完全加载?
答案 0 :(得分:0)
一个想法可能是在第一页上订阅 OnNaviagatedTo 中的点击/点击事件,然后在点击/点击事件内取消订阅,以便用户无法再次点击它。然后,当他导航回来时, OnNavigatedTo 再次订阅。您还可以考虑将在点击/单击上设置的标志,并在第二页的已加载事件中解除。样品:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
Debug.WriteLine("OnNavigatedTo");
base.OnNavigatedTo(e);
this.button.Click += Button_Click;
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
(sender as Button).Click -= Button_Click;
await Task.Delay(1000); // simulate heavy load of second page
this.Frame.Navigate(typeof(SecondPage));
}
}