<PackageReference Include="Castle.Core" Version="4.2.1" />

Castle.Components.DictionaryAdapter.DictionaryAdapterBase

namespace Castle.Components.DictionaryAdapter { public abstract class DictionaryAdapterBase : IDictionaryCreate, IDictionaryAdapter, IDictionaryEdit, IEditableObject, IRevertibleChangeTracking, IChangeTracking, IDictionaryNotify, INotifyPropertyChanging, INotifyPropertyChanged, IDictionaryValidate, IDataErrorInfo { public class TrackPropertyChangeScope : IDisposable { public TrackPropertyChangeScope(DictionaryAdapterBase adapter); public TrackPropertyChangeScope(DictionaryAdapterBase adapter, PropertyDescriptor property, object existingValue); public void Dispose(); public bool Notify(); } public abstract DictionaryAdapterMeta Meta { get; } public DictionaryAdapterInstance This { get; } public bool CanEdit { get; set; } public bool IsEditing { get; } public bool SupportsMultiLevelEdit { get; set; } public bool IsChanged { get; } public bool CanNotify { get; set; } public bool ShouldNotify { get; } public bool CanValidate { get; set; } public bool IsValid { get; } public string Error { get; } public string this[string columnName] { get; } public IEnumerable<IDictionaryValidator> Validators { get; } public event PropertyChangingEventHandler PropertyChanging; public event PropertyChangedEventHandler PropertyChanged; public T Coerce<T>() where T : class; public object Coerce(Type type); public void CopyTo(IDictionaryAdapter other); public void CopyTo(IDictionaryAdapter other, Func<PropertyDescriptor, bool> selector); public T Create<T>(); public object Create(Type type); public T Create<T>(IDictionary dictionary); public object Create(Type type, IDictionary dictionary); public T Create<T>(Action<T> init); public T Create<T>(IDictionary dictionary, Action<T> init); public DictionaryAdapterBase(DictionaryAdapterInstance instance); public string GetKey(string propertyName); public virtual object GetProperty(string propertyName, bool ifExists); public T GetPropertyOfType<T>(string propertyName); public object ReadProperty(string key); public virtual bool SetProperty(string propertyName, ref object value); public void StoreProperty(PropertyDescriptor property, string key, object value); public void ClearProperty(PropertyDescriptor property, string key); public bool ShouldClearProperty(PropertyDescriptor property, object value); protected void Initialize(); public void BeginEdit(); public void CancelEdit(); public void EndEdit(); public void RejectChanges(); public void AcceptChanges(); public IDisposable SuppressEditingBlock(); public void SuppressEditing(); public void ResumeEditing(); protected bool GetEditedProperty(string propertyName, out object propertyValue); protected bool EditProperty(PropertyDescriptor property, string key, object propertyValue); protected bool ClearEditProperty(PropertyDescriptor property, string key); protected void AddEditDependency(IEditableObject editDependency); public IDisposable SuppressNotificationsBlock(); public void SuppressNotifications(); public void ResumeNotifications(); protected bool NotifyPropertyChanging(PropertyDescriptor property, object oldValue, object newValue); protected void NotifyPropertyChanged(PropertyDescriptor property, object oldValue, object newValue); protected void NotifyPropertyChanged(string propertyName); protected TrackPropertyChangeScope TrackPropertyChange(PropertyDescriptor property, object oldValue, object newValue); protected TrackPropertyChangeScope TrackReadonlyPropertyChanges(); public DictionaryValidateGroup ValidateGroups(params object[] groups); public void AddValidator(IDictionaryValidator validator); } }