【问题标题】:Using XamDataChart in WPF to display signal在 WPF 中使用 XamDataChart 显示信号
【发布时间】:2013-05-01 13:33:24
【问题描述】:

我正在从事一个信号发生器项目,我发现很难理解 Infragistics XamDataChart 的工作原理。

该项目使用 WPF 和一个 MVVM 模型,其中 MainWindow 绑定到一个 ViewModel,它从模型类(在我的例子中为 SigGenChannel.cs)获取其所有数据,所有信号值和定时和刷新都在完成在模型类中,并一直绑定到 MainWindow,其中我有一个显示当前值(信号值)的文本字段,它在 100 毫秒时自动刷新。

所以我拥有的两个值是当前信号值 (CurrentValue) 和当前时间 (CurrentStepTime),我如何使用 XamDataChart 映射这两个数据点并让它以与文本字段相同的速率刷新和将图表上的数据显示为信号波?

感谢您的帮助,如果您需要任何特定代码sn-ps,请告诉我

【问题讨论】:

    标签: wpf signals wave


    【解决方案1】:

    如果您更改绑定集合的项目,XamDataChart 将自动刷新系列的视觉对象,前提是绑定集合实现 INotifyCollectionChanged。如果您不想显示“滚动窗口”效果,您可以在集合的末尾添加新点,并从集合的头部删除点,这样数据就会出现从右到左的滚动。

    由于您的 X 轴是 TIME,因此您有两个选项来设置系列。您可以使用 CategoryXAxis,它将时间视为字符串值,并且每个数据点与前一个数据点等距(不过,如果您有一个恒定的采样率,这是合适的),或者您可以使用 CategoryDateTimeXAxis 如果您有一个非恒定的采样率,并且您希望这些值精确地出现在水平位置,这等于它们的时间值。在任何一种情况下,您都可以将数据绑定到轴的 ItemsSource,以便轴知道有多少项目并可以检索标签。对于 CategoryXAxis,您将指示标签应来自 CurrentStepTime,但对于 CategoryDateTimeXAxis,您将另外指定 CurrentStepTime 应用于 DateTimeMemberPath。

    使用 CategoryDateTimeXAxis 的缺点是效率低于 CategoryXAxis,所以除非您需要非常量时间采样,否则我会坚持使用后者。

    在任何一种情况下,您都将创建一个行(或其他类别)系列,将数据绑定到 ItemsSource,并将 ValueMemberPath 设置为 CurrentValue。

    我认为这个样本可能会进一步说明问题:http://www.infragistics.com/products/silverlight/sample/data-chart/#/binding-real-time-data

    【讨论】:

    • 谢谢!我最终通过创建一个可观察的集合并在将 10 个数据点添加到集合后删除第一个点并将该集合绑定到数据图来让它工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多