将连续数据从一个XAML页面传递到另一个Windows 10

时间:2016-01-08 02:53:51

标签: c# wpf xaml windows-10-universal

我正在尝试从一个xaml页面上的串行设备读取数据并将其传递给另一个。我可以将数据转到另一页但不是连续的。例如,如果我使用textchanged事件,则数据来自第一页但只有一次。这可能是因为数据不是一直在变化?有时在更改之前会多次读取保存值。然而,我也模拟了不断变化的数据,但事件只发生一次。我目前正在主页面的app.xaml.cs中存储一个字符串值,然后从第二页读取它。我也试过静态类,它们都有相同的结果。我确定它是一个简单的修复,但我无法弄明白。任何帮助赞赏。

在主页上我有这个。

  App app = Application.Current as App;
  app.readData = rotAngle.ToString("F2");

并在下一页

  private void rawValText_DataContextChanged(FrameworkElement sender, DataContextChangedEventArgs args)
    {            
        App app = Application.Current as App;
        rawValText.Text = app.readData;
    }

但它只在页面加载时触发一次。

2 个答案:

答案 0 :(得分:0)

使用活动。为此使用静态类。

在第1页收到数据时发生火灾事件。

在Page2中编写事件处理程序以接收从Page1触发的事件。

简单!

答案 1 :(得分:0)

您似乎错误地使用了DataContextChangedEvent。 DataContextChangedEvent在DataContext更改时触发。您应该使用适当的事件。您可以查找MVVM并使用INotifyPropertyChanged,也可以按照自己的方式订阅另一个页面上的事件,并通知另一个页面:

How to subscribe to other class' events in c#?

基本上你必须自己编写通知代码。

编辑:示例MVVM教程:

http://www.codeproject.com/Articles/126249/MVVM-Pattern-in-WPF-A-Simple-Tutorial-for-Absolute