【发布时间】:2012-07-25 03:48:55
【问题描述】:
所以我正在尝试更新我的 RadRadialGauge。它将显示实时检索的数据(使用动画针)。我有一个 RadChartView,目前使用 TimeStamp 和 Value 属性来绘制图表。当我添加图表时,有时我可能想根据我正在观察的变量添加一些图表。例如,如果我想查看电机速度和输出频率,我必须添加多个垂直轴。我处理 RadChartView 数据绑定的部分代码在这里:
var lineSeries = new LineSeries();
lineSeries.CategoryBinding =
new PropertyNameDataPointBinding() { PropertyName = "TimeStamp" };
lineSeries.ValueBinding =
new PropertyNameDataPointBinding() { PropertyName = "Value" };
lineSeries.ItemsSource = (chart.Chart as GuiAnalogQueue).Records;
其余代码只是外观处理,最后我将 LineSeries 添加到我的 RadChartView。
现在,我正试图以某种方式将此代码移植到 RadGauge。我不确定如何将值绑定到 Needle,以便在值更改时针会移动。
在 XAML 中,我尝试过 Value="{Binding Value}" 我尝试将绑定添加到 ValueSource 变量。我也做过needle.Value = chart.Chart.Value;
我不知道,所以任何帮助表示赞赏。
更新
这就是我想要完成的。我的Records 集合有两个属性,Value 和TimeStamp。我正在尝试将Records 中的Value 绑定到needle 值。这是我以编程方式执行此操作的方法:
public void InitializeCharts(ChartsVM charts, Theme theme)
{
DataContext = charts;
foreach (cVM chart in charts.Charts)
{
Binding value = new Binding();
value.Source = (chart.Chart as GuiAnalogQueue).Records;
value.Path = new PropertyPath("Value");
needle.SetBinding(Needle.ValueProperty, value);
}
}
但是,当我这样做时,它根本不会更改 needle.Value。我的 Records 是使用 NotifyPropertyChanged("Records") 的集合,所以我希望每次更改 Records 时我的针都会改变。
正如您在我的原始帖子中看到的,这三行负责将变量绑定到 ChartView 图表,但是我无法让 RadGauge 工作。
【问题讨论】:
标签: c# wpf data-binding mvvm telerik