如何避免页面导航中的MessageDialog

时间:2013-10-10 07:47:09

标签: windows-runtime windows-store-apps winrt-async

在我的应用程序中点击每个页面导航上的服务调用并向用户显示MessageDialog。

我的问题是当我在页面导航“Page1”上点击服务电话(等待)到“Page2”而服务电话需要一定的时间来完成同时用户点击回到“Page1”

在这种情况下,用户在“Page2”上看到“Page1”并等待服务调用完成,并在“Page1”中显示该服务响应消息。

我如何避免使用MessageDialog,假设用户从该页面导航回来。

1 个答案:

答案 0 :(得分:0)

首先,您应该避免使用MessageDialogs来获取此类信息。您应该考虑使用ProgressBar或响铃来指示您的应用程序在后台执行任务(调用您的服务)。这样,您的用户不会在与应用的互动中被中断,但仍然会意识到后台正在发生某些事情。

如果您正在使用MVVM模式,那么您的ViewModel或Model类应该在与服务进行通信时非常繁重。如果您的应用绝对必须显示MessageDialogs,我建议您在后端类中创建一个事件,这将导致UI在完成调用时显示MessageDialogs。这样,您可以在加载页面时订阅这些事件,并在您离开时取消订阅这些事件。通过这种方式,您可以避免在使用应用的第1页时出现在Page2上的消息。