2012-03-26 25 views
0

WPFToolkit在viewmodel上的屬性包含數據但不包含數據時拋出異常!當綁定WPFToolkit圖表時,System.NullReferenceException圖表

VIEW:

<UserControl x:Class="ChartView" 
    xmlns:DV="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
    xmlns:DVC="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 
<Grid> 
    <DVC:Chart> 
     <DVC:Chart.Series> 
      <DVC:ScatterSeries ItemsSource="{Binding Data}" 
           DependentValueBinding="{Binding Path=Value}" 
           IndependentValueBinding="{Binding Path=Key}" /> 
     </DVC:Chart.Series> 
    </DVC:Chart> 
</Grid> 

視圖模型:

public class ChartViewModel 
{ 
    public ObservableCollection<KeyValuePair<int, int>> Data { get; set; } 

    public ChartViewModel() 
    { 
     Data = new ObservableCollection<KeyValuePair<int, int>>(); 

     //If I uncomment this, the error is thrown upon binding 
     //Data.Add(new KeyValuePair<int, int>(1, 10)); 
    } 
} 

堆棧跟蹤的頂部是:

at System.Windows.Controls.DataVisualization.Charting.ScatterSeries.UpdateDataPoint(DataPoint dataPoint) in C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataVisualization\Charting\Series\ScatterSeries.cs:line 179 
at System.Windows.Controls.DataVisualization.Charting.DataPointSeriesWithAxes.OnDataPointActualIndependentValueChanged(DataPoint dataPoint, Object oldValue, Object newValue) in C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataVisualization\Charting\Series\DataPointSeriesWithAxes.cs:line 257 
at System.Windows.Controls.DataVisualization.Charting.DataPointSeries.OnDataPointActualIndependentValueChanged(Object sender, RoutedPropertyChangedEventArgs`1 args) in C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataVisualization\Charting\Series\DataPointSeries.cs:line 1322 
at System.Windows.Controls.DataVisualization.Charting.DataPoint.OnActualIndependentValuePropertyChanged(Object oldValue, Object newValue) in C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataVisualization\Charting\DataPoint\DataPoint.cs:line 657 
at System.Windows.Controls.DataVisualization.Charting.DataPoint.OnActualIndependentValuePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) in C:\dd\WPF_1\src\wpf\src\ControlsPack\WPFToolkit\DataVisualization\Charting\DataPoint\DataPoint.cs:line 629 

回答

1

的解決方案是非常牽強。在我App.xaml.cs我這樣做改變了語言本地化的緣故(我想逗號作爲小數點):

using System.Windows.Markup; 
using System.Globalization; 


var window = new MainWindowView(); 
window.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag); 
window.Show(); 

顯然,WPFToolkit不喜歡這一點。