在哪里处理像SettingsPane.CommandsRequested或DataTransferManager.DataRequested这样的charms事件很重要吗?如果是的话,推荐的地方是什么-Page构造函数,OnNavigatedTo方法,Page.Loaded事件处理程序等?
发布于 2013-04-27 04:12:39
对于全局注册,您在XAML应用程序中最好的选择是OnWindowCreated覆盖。
这确保了代码在创建窗口后在正确的线程上运行(这两个线程都是运行任何GetForCurrentView app所必需的),并且每个窗口只运行一次,而不管您的应用程序可能为不同的合同激活了多少次。
或者,如果您的一些页面将注册这些事件,而其他页面不会注册,或者如果您希望维护不同的、分离的实现,则可以采用逐页方法。在这种情况下,我建议使用OnNavigatedTo方法注册它们,并确保在OnNavigatingFrom中取消注册。这一点很重要,因为其中一些事件(如DataRequested)一次只能注册一个处理程序。因此,当前页面应该在卸载之前注销它的处理程序(因此OnNavigat*From是比OnNavigatedFrom更好的选择)。
希望这能有所帮助。
https://stackoverflow.com/questions/16244050
复制相似问题