【问题标题】:How to reload page when navigating导航时如何重新加载页面
【发布时间】:2014-06-26 17:24:46
【问题描述】:

我正在开发 WPF MUI 应用程序。我使用按钮 onclick 导航到另一个页面并在 page1.xaml 上打印一些文本。在我使用另一个按钮导航以在 page1.xaml 上打印另一个文本之后。但我不能这样做。我的输出不是新文本。它只是早期的详细信息。不能重新加载 page1.xaml。导航时我传递了参数并根据参数在同一页面上打印参考文本。有人可以帮我吗?

这是我的导航代码

var frame = NavigationHelper.FindFrame(null, this);
frame.Source = new Uri("../Content/Sale/SaleInvoice/Nested/saleNested.xaml", UriKind.Relative);

【问题讨论】:

    标签: c# wpf navigation reload modern-ui


    【解决方案1】:

    将页面数据绑定到 ViewModel。一旦你想刷新,只需创建一个新的 Viewmodel。在 backgroudworker 中执行重新加载是有意义的,这样您的 UI 才能保持响应。如果您从 webService 或其他在线资源中刷新某些资源,这将特别有用。

    【讨论】:

      【解决方案2】:

      数据在初始时绑定到页面以重新加载页面我正在使用此方法
      在 xaml 页面上只需添加 Loaded 属性:

      <UserControl x:Class="ModernUINavigationApp1.Pages.Page"
               ...
               Loaded="OnLoad" >
      

      然后在后面的代码中添加事件处理程序,使页面在加载时做任何你想做的事情

      private void OnLoad(object sender, RoutedEventArgs e)
          {
      
          }
      

      希望有帮助:D

      【讨论】:

        【解决方案3】:

        确保您的 ViewModel 实现了INotifyPropertyChanged。如果您的 Page1.xaml 的 DataContext 设置为 ViewModel,并且您的 XAML 正确使用绑定,则对 ViewModel 的任何更改都将反映在 UI 中。你不需要刷新任何东西。只需更新 ViewModel 对象中的属性即可。

        如果您使用示例 XAML 和 C# 更新您的问题,我可以提供更多帮助。

        【讨论】:

          猜你喜欢
          • 2013-12-07
          • 2021-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-11
          • 1970-01-01
          相关资源
          最近更新 更多