我目前在我的应用程序中重新编码条形图以利用WPF Toolkit中的Chart
类。使用MVVM,我将图表中的ColumnSeries
的ItemsSource
绑定到我的viewmodel上的一个属性。下面是相关的XAML:绑定更新将新闻系列添加到WPF工具包图表(而不是替换/更新系列)
<charting:Chart>
<charting:ColumnSeries ItemsSource="{Binding ScoreDistribution.ClassScores}"
IndependentValuePath="ClassName" DependentValuePath="Score"/>
</charting:Chart>
而且在视图模型属性:
// NB: viewmodel derived from Josh Smith's BindableObject
public class ExamResultsViewModel : BindableObject
{
// ...
private ScoreDistributionByClass _scoreDistribution;
public ScoreDistributionByClass ScoreDistribution
{
get
{
return _scoreDistribution;
}
set
{
if (_scoreDistribution == value)
{
return;
}
_scoreDistribution = value;
RaisePropertyChanged(() => ScoreDistribution);
}
}
然而,当我更新ScoreDistribution
属性(将其设置为一个新的ScoreDistribution
对象),该图得到一个额外的系列(基于新的ScoreDistribution)以及保留原始系列(基于之前的ScoreDistribution)。
为了说明这一点,这里有几个屏幕截图示出了图的更新(在ScoreDistribution.ClassScores
的单个数据点)之前和之后的(现在与ScoreDistribution.ClassScores
3个数据点):
现在,我知道有其他的方法,我可以这样做(例如,改变原来的ScoreDistribution
对象的内容,而不是完全取代它),但我不明白为什么它在其目前的FO脚麻R M。谁能帮忙?
您的解决方法效果很好。我在工具箱的WinRT editon中遇到了同样的问题。谢谢。 – Bart 2012-11-24 12:13:31
@freundblase我也有同样的问题。我已经下载了wpf工具包的源代码,但无法编译它,很多错误。你能否提供你正在使用的DLL。 – 2015-02-25 13:17:33