在我的 Windows 8 应用程序中,我有一个如下所示的 RadCartesianChart:
<telerikChart:LineSeries ItemsSource="{Binding GraphData, Mode=TwoWay}" ShowLabels="True">
<telerikChart:LineSeries.CategoryBinding>
<telerikChart:PropertyNameDataPointBinding PropertyName="Category" />
</telerikChart:LineSeries.CategoryBinding>
<telerikChart:LineSeries.ValueBinding>
<telerikChart:PropertyNameDataPointBinding PropertyName="Value" />
</telerikChart:LineSeries.ValueBinding>
</telerikChart:LineSeries>
它绑定到这个集合:
public ObservableCollection<Data> GraphData
{
get { return _graphData; }
set
{
if (_graphData != value)
{
_graphData = value;
RaisePropertyChanged(() => GraphData);
}
}
}
包含这些对象:
public class Data : ViewModelBase
{
private string _category;
private int _value;
public string Category
{
get { return _category; }
set
{
if (_category != value)
{
_category = value;
RaisePropertyChanged(() => Category);
}
}
}
//etc
}
RadCartesianChart 绑定到一些默认数据,但我想在运行时替换这些数据。但不知何故我无法让这个工作......我已经尝试过简单地做一些类似的事情:
GraphData = new ObservableCollection<Data>(someData);
我试着做这样的事情:
GraphData.Clear();
GraphData.Add(object1);
GraphData.Add(object2);
//etc
但图表不会更新。我意识到这可能是一个 ObservableCollection 问题,但我无法让它工作。
我正在使用 MVVM LightViewModelBase
顺便说一句。有没有人有办法解决吗?