OnNavigatedTovsLoadEvent公共ForecastPage(){InitializeComponent();}protectedoverridevoidOnNavigatedTo(NavigationEventArgse){//代码在这里}}但在其他人中我发现使用Load事件publicpartialclassPerson:PhoneApplicationPage{privatePersonViewModel_ViewModel;publicPerson(){InitializeComponent();this.Loaded+=newRoutedEventHandler(SearchView_Loaded);}voidSearchView_Loaded(objectsender,RoutedEventArgse){//codehere}}我知道OnNavigatedTo在Load事件之前触发,但它在UI被吸入手机之前触发,所以我的问题是使用另一个有什么优势吗方法?阅读有关OnNavigatedTo的文档:当页面成为框架中的活动页面时调用。当我们了解Loaded事件时,请参阅:在构建FrameworkElement并将其添加到对象树时发生。它们完全不同,作为页面,如果我错了请纠正我,在应用程序的生命周期中可以多次激活,但FrameworkElement构造通常只发生一次。我不同意蒂格兰。publicView(){初始化组件();personList.ItemsSource=PersonDataSource.CreateList(100);已加载+=(发件人,args)=>Debug.WriteLine("已加载");}protectedoverridevoidOnNavigatedTo(NavigationEventArgse){Debug.WriteLine("Navigated");在向前向后跳转时,输出为NavigatedLoadedNavigatedLoadedNavigatedLoaded所以当页面导航完成但在加载页面控件之前(期间)调用OnNavigated,而在加载所有控件时调用页面准备加载。在Windows上运行时,Loaded事件将始终在OnNavigatedTo之后触发(即使页面通过设置NavigationCacheMode.Required进行了缓存)。维塔利是对的。根据MSDN:在Windows运行时实现中,Loaded事件保证在应用控件模板后发生,您可以获得对应用XAML模板创建的对象的引用。对于使用页面间导航的应用程序代码,请勿使用Page.OnNavigatedTo进行元素操作或目标页面上控件的状态更改。OnNavigatedTo虚方法在模板加载之前调用,因此模板中的元素尚不可用。相反,在新加载的页面内容的根部附加一个Loaded事件处理程序,并在Loaded事件处理程序中执行任何元素操作、状态更改、事件连接等。但是您有充分的理由想要使用OnNavigatedTo:它是唯一可以获取导航参数的地方。如果您从不使用导航参数,请使用Loaded事件。以上就是C#学习教程的全部内容:OnNavigatedTovsLoad事件分享。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
