0

在哪里处理诸如SettingsPane.CommandsRequested或之类的魅力事件是否重要,DataTransferManager.DataRequested如果是,那么推荐的地方是什么 -Page构造函数、OnNavigatedTo方法、Page.Loaded事件处理程序等?

4

1 回答 1

2

对于全局注册,在 XAML 应用程序中最好的选择是在OnWindowCreated覆盖中。

这可确保代码在创建窗口后在正确的线程上运行(任何 GetForCurrentView API 都需要运行),并且每个窗口只运行一次,无论您的应用程序可能为不同的合同激活多少次。

或者,如果您的某些页面将注册这些事件而其他页面不会注册,或者如果您想要维护不同的解耦实现,则可以采用每页方法。在这种情况下,我建议使用OnNavigatedTo方法来注册它们,并确保在OnNavigatingFrom中取消注册它们。这很重要,因为其中一些事件(如 DataRequested)一次只能注册一个处理程序。因此,当前页面应在卸载之前取消注册其处理程序(因此 OnNavigat* ing *From 是比 OnNavigatedFrom 更好的选择)。

希望有帮助。

于 2013-04-26T20:12:39.023 回答