IPersistableObject Interface

Represents an object that can store its own properties and is able to notify its consumer about property changes.

Definition

Namespace: KGySoft.ComponentModel
Assembly: KGySoft.CoreLibraries (in KGySoft.CoreLibraries.dll) Version: 10.0.0
C#
public interface IPersistableObject : INotifyPropertyChanged
Implements
INotifyPropertyChanged

Methods

CanGetProperty Gets whether the specified property can be retrieved. If returns , then GetPropertyOrDefault, ReplaceProperties and TryReplaceProperty methods throw an InvalidOperationException for the specified propertyName.
CanSetProperty Gets whether the specified property can be set. If returns , then SetProperty, SetProperties, ReplaceProperties and TryReplaceProperty methods throw an InvalidOperationException for the specified propertyName.
GetProperties Gets a copy of the stored properties.
GetPropertyOrDefaultT Gets the specified property if it exists in the inner storage and has a compatibly type with T; otherwise, returns defaultValue.
ReplaceProperties Replaces the properties of the IPersistableObject with the provided new properties. If contains less entries than the actually stored entries, then the difference will be removed from the IPersistableObject.
ResetProperty Resets the property of the specified propertyName, meaning, it will be removed from the underlying storage so the property getters will return the default value again and TryGetPropertyValue will return .
SetProperties Sets the provided properties in the IPersistableObject. The new set of properties will be merged with the existing ones.
SetProperty Sets the property to specified value.
TryGetPropertyValue Tries to get the specified property from the inner storage.
TryReplaceProperty Tries to the replace a property value. The replacement will succeed if the currently stored value equals to originalValue. Non-existing value can be represented by MissingProperty so the method supports also "try remove" and "try add" functionality.

Extension Methods

CreatePropertyBinding Creates a special binding for the PropertyChanged event of the specified source, which allows to update the specified targetPropertyName in the targets, when the property of sourcePropertyName changes in the source.
(Defined by Command)
CreatePropertyBinding Creates a special binding for the PropertyChanged event of the specified source, which allows to update the specified targetPropertyName in the targets, when the property of sourcePropertyName changes in the source.
(Defined by Command)
CreatePropertyChangedHandlerBinding Creates a special command binding for the PropertyChanged event of the specified source that invokes the specified handler only when the changed property is among the specified propertyNames.
(Defined by Command)
CreatePropertyChangedHandlerBinding Creates a special command binding for the PropertyChanged event of the specified source that invokes the specified handler only when the changed property is among the specified propertyNames.
(Defined by Command)
CreateSynchronizedPropertyBinding Creates a special binding for the PropertyChanged event of the specified source, which allows to update the specified targetPropertyName in the targets, when the property of sourcePropertyName changes in the source. The target properties will be set using the SynchronizationContext of the thread on which this method was called.
(Defined by Command)
CreateSynchronizedPropertyBinding Creates a special binding for the PropertyChanged event of the specified source, which allows to update the specified targetPropertyName in the targets, when the property of sourcePropertyName changes in the source. The target properties will be set using the SynchronizationContext of the thread on which this method was called.
(Defined by Command)
CreateTwoWayPropertyBinding Creates a pair of special bindings for the PropertyChanged event of the specified source and target, which allow to update the specified targetPropertyName and sourcePropertyName in both directions when any of them changes.
(Defined by Command)

See Also