Hello,
I have a WPF application which incorporates the MVVM pattern. I have a viewmodel class which basically has two properties:
01.
private SeriesMappingCollection _mapCollection;
02.
private ArrayList _joints;
03.
public SeriesMappingCollection MapCollection
04.
{
05.
get { return _mapCollection; }
06.
set
07.
{
08.
if (_mapCollection != value)
09.
{
10.
_mapCollection = value;
11.
OnPropertyChanged("MapCollection");
12.
}
13.
}
14.
}
15.
16.
public ArrayList Joints
17.
{
18.
get { return _joints; }
19.
set
20.
{
21.
if (_joints != value)
22.
{
23.
_joints = value;
24.
OnPropertyChanged("Joints");
25.
}
26.
}
27.
}
The values of Mapcollection and Joints are set using a BackgroundWorker. When the data has been fetched, the GetAlertCompleted function is fired and the Mapcollection and Joints properties are set. This consequently fires the OnPropertyChanged() function of the view model
01.
public ViewModel()
02.
{
03.
workerAlerts = new BackgroundWorker();
04.
workerAlerts.DoWork += (o, args) => args.Result =
05.
VizBackend.GetAlert.(_ipAdd,_selectedPeriod);
06.
07.
workerAlerts.RunWorkerCompleted += GetAlertCompleted;
08.
}
09.
10.
private void GetAlertCompleted(object sender, RunWorkerCompletedEventArgs e)
11.
{
12.
13.
var alertData = e.Result as AlertData;
14.
Joints = alertData.Joints;
15.
MapCollection = alertData.MapCollection;
16.
}
And in the main window I have:
01.
private readonly ViewModel vm;
02.
vm = (ViewModel)DataContext;
03.
vm.PropertyChanged += VmPropertyChanged;
04.
05.
private void VmPropertyChanged(object sender, PropertyChangedEventArgs e)
06.
{
07.
switch (e.PropertyName)
08.
{
09.
case "MapCollection":
10.
this.radChart.SeriesMappings = vm.MapCollection;
11.
break;
12.
13.
case "Joints":
14.
this.radChart.ItemsSource = vm.Joints;
15.
break;
16.
}
17.
}
I would appreciate if you could point out where the problem might be. Thanks.