internal void RaisePropertyChanged(Field field)
{
if (fields.propertyChangedEventArgs == null)
{
var args = new PropertyChangedEventArgs[fields.Count + 1];
for (var i = 0; i < fields.Count; i++)
{
var f = fields[i];
args[i] = new PropertyChangedEventArgs(f.propertyName ?? f.Name);
}
args[fields.Count] = new PropertyChangedEventArgs("__ROW__");
fields.propertyChangedEventArgs = args;
}
if (ReferenceEquals(null, field))
propertyChanged(this, fields.propertyChangedEventArgs[fields.Count]);
else
propertyChanged(this, fields.propertyChangedEventArgs[field.Index]);
}