我很难让OxyPlot在我的独立WPF应用程序中显示我的数据(我使用caliburn micro,并遵循MVVM模式)。
所以在我的Xaml中我有以下内容:
<UserControl ...
xmlns:oxy="clr-namespace:OxyPlot.Wpf;assembly=OxyPlot.Wpf">
以后
<oxy:Plot Title="Winnings of Selected Player" Model="{Binding Graph1}"/>
在我的ViewModel中,我似乎可以选择包含using OxyPlot;
或using OxyPlot.Wpf;
。如果我做前者,我可以按如下方式定义PlotModel
:
private PlotModel _graph1;
public PlotModel Graph1 {
get { return _graph1;}
set {
_graph1 = value;
Graph1.RefreshPlot(true);
}
}
public MyViewModel() {
Graph1 = new PlotModel();
var FirstSeries = new LineSeries();
FirstSeries.Points.Add(new DataPoint(1,2));
FirstSeries.Points.Add(new DataPoint(1,2));
}
但我的视图没有显示任何内容(事实上,我甚至没有看到'空图'或视图中的标题)。我也尝试过散布RefreshPlot
命令......
那么,我想尝试using OxyPlot.Wpf;
。然而,我无法将Points
添加到我的LineSeries
- 这是我的智能感知的截图...
!(http://imageshack.com/a/img30/2441/cvqy.png)
那么如何使用OxyPlot.Wpf将数据填充到我的LineSeries中呢?顺便说一句,我仍然没有看到一个空图,即使我编译时没有向LineSeries添加点。我看过的所有示例都是这样做的,或者他们在.xaml.cs代码隐藏文件中编写代码,我不想这样做。
编辑:正如dellywheel提到的那样,我忘记在提问时将LineSeries添加到上面的PlotModel中,所以上面的构造函数应该包含行Graph1.Series.Add(FirstSeries);
但这只是在输入问题时,不是真正的问题......
答案 0 :(得分:0)
您尚未将LineSeries添加到图表,图表是Graph1而非Graph 尝试
public MyViewModel(){
Graph1 = new PlotModel();
var firstSeries = new LineSeries();
firstSeries.Points.Add(new DataPoint(1, 2));
firstSeries.Points.Add(new DataPoint(1, 2));
Graph1.Series.Add(firstSeries);
}
希望有所帮助