Have you tried something like this...
private IEnumerable<DataPoint> _DataPoints;
public IEnumerable<DataPoint> DataPoints
{
get
{
return _DataPoints;
}
set
{
if (_DataPoints != value)
{
_DataPoints = value;
this.OnPropertyChanged("DataPoints");
}
}
}
Then whenever you modify ANY point within the DataPoints collection, you raise a property change event for the entire DataPoints set
/// <summary>
/// Raised when a property on this object has a new value.
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// Raises this object's PropertyChanged event.
/// </summary>
/// <param name="propertyName">The property that has a new value.</param>
protected virtual void OnPropertyChanged(string propertyName)
{
//this.VerifyPropertyName(propertyName);
PropertyChangedEventHandler handler = this.PropertyChanged;
if (handler != null)
{
var e = new PropertyChangedEventArgs(propertyName);
handler(this, e);
}
}
EDIT:
Try changing the resource type from StaticResource to DynamicResource...
http://msdn.microsoft.com/en-us/library/ms750613.aspx#staticdynamic
The resource could be being loaded with the page/window and never updated. That would explain the lack of event communication