public object this[string propertyName] { get { object result; return(_propertyProvider.TryGetPropertyValue(propertyName, out result) ? result : null); } set { _propertyProvider.SetPropertyValue(propertyName, value); OnPropertyChanged(propertyName); //OnPropertyChanged("Item[]"); OnPropertyChanged(string.Format("Item[{0}]", propertyName)); } }