我正在尝试从一个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;
}
但它只在页面加载时触发一次。
答案 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