我目前在我的應用程序中重新編碼條形圖以利用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