PropertyModel Class
Represents a property grid property IDataModel that can be easily explicitly-defined and optionally bound to in XAML.
public class PropertyModel : FrameworkElement, DUCE.IResource, IAnimatable, IFrameworkInputElement, IInputElement, ISupportInitialize, IHaveResources, IQueryAmbient, INotifyPropertyChanged, IPropertyModel, IDataModel, IDisposable, IDataErrorInfo
- Inheritance:
- System.Object System.Windows.Threading.DispatcherObject System.Windows.DependencyObject System.Windows.Media.Visual System.Windows.UIElement System.Windows.FrameworkElement Object
- Implements:
- IPropertyModel IDataModel System.IDisposable
Remarks
This class only inherits System.Windows.FrameworkElement to support XAML data binding, since deriving lower-level classes like System.Windows.DependencyObject
trigger a Cannot find governing FrameworkElement or FrameworkContentElement for target element.
error when attempting to bind to its properties unless a binding proxy object is used.
None of the inherited System.Windows.FrameworkElement members, such as those related to input, are used in any way.
Constructors
PropertyModel()
public PropertyModel()
Properties
AddChildCommand
Gets the System.Windows.Input.ICommand used to add a new child into to an associated collection/parent.
public ICommand AddChildCommand { get; }
Property Value
- System.Windows.Input.ICommand:
The System.Windows.Input.ICommand used to add a new child into to an associated collection/parent.
CanAddChild
Gets whether a new child can be added to an associated collection/parent.
public virtual bool CanAddChild { get; }
Property Value
- System.Boolean:
true
if a new child can be added to an associated collection/parent; otherwise,false
.
CanAutoConfigure
Gets or sets whether the property can be auto-configured based on a simple Binding
on its Value property.
public bool CanAutoConfigure { get; set; }
Property Value
- System.Boolean:
true
if the property can be auto-configured based on a simpleBinding
on its Value property; otherwise,false
. The default value isfalse
.
CanAutoDispose
Gets whether the data model should be automatically disposed when it is removed from a parent data model.
public bool CanAutoDispose { get; }
Property Value
- System.Boolean:
true
if the data model should be automatically disposed when it is removed from a parent data model; otherwise,false
.
CanRemove
Gets whether the property can be removed from an associated collection/parent.
public virtual bool CanRemove { get; }
Property Value
- System.Boolean:
true
if the property can be removed from an associated collection/parent; otherwise,false
.
CanResetValue
Gets or sets whether the property can be reset to its default value.
public bool CanResetValue { get; set; }
Property Value
- System.Boolean:
true
if the property can be reset to its default value; otherwise,false
. The default value isfalse
.
Category
Gets or sets a category for the property.
public string Category { get; set; }
Property Value
- System.String:
A category for the property.
Children
Gets the collection of child data models.
public DataModelCollection Children { get; }
Property Value
- DataModelCollection:
The collection of child data models.
Converter
Gets or sets the System.ComponentModel.TypeConverter to use for the property.
public TypeConverter Converter { get; set; }
Property Value
- System.ComponentModel.TypeConverter:
The System.ComponentModel.TypeConverter to use for the property.
DefaultValue
Gets or sets the default value to use for a reset operation.
public object DefaultValue { get; set; }
Property Value
- System.Object:
The default value to use for a reset operation.
Description
Gets or sets the description of the data model, often displayed in a summary area or a tooltip.
public string Description { get; set; }
Property Value
- System.String:
The description of the data model, often displayed in a summary area or a tooltip.
DisplayName
Gets or sets the name to use when displaying the data model, often the same as Name
.
public string DisplayName { get; set; }
Property Value
- System.String:
The name to use when displaying the data model, often the same as
Name
.
HasStandardValues
Gets whether the property supports StandardValues
.
public virtual bool HasStandardValues { get; }
Property Value
- System.Boolean:
true
if the property supportsStandardValues
; otherwise,false
.
IsExpanded
Gets or sets whether the data model is expanded.
public bool IsExpanded { get; set; }
Property Value
- System.Boolean:
true
if the data model is expanded; otherwise,false
.
IsHostReadOnly
Gets or sets whether the host UI control (e.g. a property grid) is read-only.
public bool IsHostReadOnly { get; set; }
Property Value
- System.Boolean:
true
if the host UI control (e.g. a property grid) is read-only; otherwise,false
.
IsImmutable
Gets whether the Value's child properties, if any, are capable of being edited.
public bool IsImmutable { get; set; }
Property Value
- System.Boolean:
true
if the Value's child properties, if any, are capable of being edited; otherwise,false
.
IsLimitedToStandardValues
Gets or sets whether the Value property can only be set to one of the values defined by the StandardValues property.
public bool IsLimitedToStandardValues { get; set; }
Property Value
- System.Boolean:
true
if the Value property can only be set to one of the values defined by the StandardValues property; otherwise,false
.
IsMergeable
Gets whether the property can be merged when presenting multiple objects.
public virtual bool IsMergeable { get; }
Property Value
- System.Boolean:
true
if the property can be merged when presenting multiple objects; otherwise,false
.
IsModified
Gets or sets whether the data model has been modified.
public bool IsModified { get; set; }
Property Value
- System.Boolean:
true
if the data model has been modified; otherwise,false
.
IsReadOnly
Gets whether UI for editing the property value is read-only.
public bool IsReadOnly { get; }
Property Value
- System.Boolean:
true
if the UI for editing the property value is read-only; otherwise,false
.
Remarks
This property is a resolved value of IsHostReadOnly and IsValueReadOnly, and also considers whether a parent property is immutable.
IsRoot
Gets whether the data model is the root.
protected virtual bool IsRoot { get; }
Property Value
- System.Boolean:
true
if the data model is the root; otherwise,false
.
IsSelected
Gets or sets whether the data model is selected.
public bool IsSelected { get; set; }
Property Value
- System.Boolean:
true
if the data model is selected; otherwise,false
.
IsValueReadOnly
Gets or sets whether the Value property is read-only.
public bool IsValueReadOnly { get; set; }
Property Value
- System.Boolean:
true
if the Value property is read-only; otherwise,false
.
NamePropertyEditor
Gets or sets the PropertyEditor, if any, that was used to select the System.Windows.DataTemplate for showing the property display name.
public PropertyEditor NamePropertyEditor { get; set; }
Property Value
- PropertyEditor:
The PropertyEditor, if any, that was used to select the System.Windows.DataTemplate for showing the property display name.
NameTemplate
Gets or sets the System.Windows.DataTemplate to use for showing the property display name.
public DataTemplate NameTemplate { get; set; }
Property Value
- System.Windows.DataTemplate:
The System.Windows.DataTemplate to use for showing the property display name.
Remarks
The priority order of value template specification is NameTemplate, NameTemplateSelector, NameTemplateKey, and finally any name templates in matching property editors.
NameTemplateKey
Gets the resource key that references a System.Windows.DataTemplate to use for showing the property display name.
public object NameTemplateKey { get; set; }
Property Value
- System.Object:
The resource key that references a System.Windows.DataTemplate to use for showing the property display name.
Remarks
The priority order of value template specification is NameTemplate, NameTemplateSelector, NameTemplateKey, and finally any name templates in matching property editors.
NameTemplateSelector
Gets or sets the System.Windows.Controls.DataTemplateSelector to use for showing the property display name.
public DataTemplateSelector NameTemplateSelector { get; set; }
Property Value
- System.Windows.Controls.DataTemplateSelector:
The System.Windows.Controls.DataTemplateSelector to use for showing the property display name.
Remarks
The priority order of value template specification is NameTemplate, NameTemplateSelector, NameTemplateKey, and finally any name templates in matching property editors.
RemoveCommand
Gets the System.Windows.Input.ICommand used to remove the property from an associated collection/parent.
public ICommand RemoveCommand { get; }
Property Value
- System.Windows.Input.ICommand:
The System.Windows.Input.ICommand used to remove the property from an associated collection/parent.
ResetValueCommand
Gets the System.Windows.Input.ICommand used to reset the property value to its default value.
public ICommand ResetValueCommand { get; }
Property Value
- System.Windows.Input.ICommand:
The System.Windows.Input.ICommand used to reset the property value to its default value.
ShouldNotifyParentOnValueChange
Gets whether the property should notify its parent property when the Value changes.
public virtual bool ShouldNotifyParentOnValueChange { get; }
Property Value
- System.Boolean:
true
if the property should notify its parent property when the Value changes; otherwise,false
.
SortComparer
Gets or sets the DataModelSortComparer to use for sorting this data model's children.
public DataModelSortComparer SortComparer { get; set; }
Property Value
- DataModelSortComparer:
The DataModelSortComparer to use for sorting this data model's children.
Remarks
If this property doesn't return anything, the default SortComparer will be used.
SortImportance
Gets or sets a DataModelSortImportance that indicates the sort importance of this data model.
public virtual DataModelSortImportance SortImportance { get; set; }
Property Value
- DataModelSortImportance:
A DataModelSortImportance that indicates the sort importance of this data model.
SortOrder
Gets or sets a numeric sort order for sorting the data model within other data models of the same sort importance.
public int SortOrder { get; set; }
Property Value
- System.Int32:
A numeric sort order for sorting the data model within other data models of the same sort importance.
StandardValues
Gets or sets the standard list of values for the Value property.
public IEnumerable StandardValues { get; set; }
Property Value
- System.Collections.IEnumerable:
The standard list of values for the Value property.
StandardValuesAsStrings
Gets or sets the standard list of values for the ValueAsString property as a list of strings.
public IEnumerable<string> StandardValuesAsStrings { get; set; }
Property Value
- System.Collections.Generic.IEnumerable<System.String>:
The standard list of values for the ValueAsString property as a list of strings.
StandardValuesDisplayMemberPath
Gets or sets the display member path for StandardValues when IsLimitedToStandardValues is true
.
public string StandardValuesDisplayMemberPath { get; set; }
Property Value
- System.String:
The display member path for StandardValues when IsLimitedToStandardValues is
true
.
StandardValuesSelectedValuePath
Gets or sets the selected value path for StandardValues when IsLimitedToStandardValues is true
.
public string StandardValuesSelectedValuePath { get; set; }
Property Value
- System.String:
The selected value path for StandardValues when IsLimitedToStandardValues is
true
.
Target
Gets or sets the target object that owns the property.
public object Target { get; set; }
Property Value
- System.Object:
The target object that owns the property.
TargetType
Gets or sets the System.Type of the Target property.
public Type TargetType { get; set; }
Property Value
- System.Type:
The System.Type of the Target property.
Value
Gets or sets the property value.
public object Value { get; set; }
Property Value
- System.Object:
The property value.
ValueAsString
Gets or sets the property value in a string representation.
public string ValueAsString { get; set; }
Property Value
- System.String:
The property value in a string representation.
ValuePropertyEditor
Gets or sets the PropertyEditor, if any, that was used to select the System.Windows.DataTemplate for editing the property value.
public PropertyEditor ValuePropertyEditor { get; set; }
Property Value
- PropertyEditor:
The PropertyEditor, if any, that was used to select the System.Windows.DataTemplate for editing the property value.
Values
Gets the property values, of which there will only be more than one if this is a merged property.
public virtual IList<object> Values { get; }
Property Value
- System.Collections.Generic.IList<System.Object>:
The property values, of which there will only be more than one if this is a merged property.
ValueTemplate
Gets or sets the System.Windows.DataTemplate to use for editing the property value.
public DataTemplate ValueTemplate { get; set; }
Property Value
- System.Windows.DataTemplate:
The System.Windows.DataTemplate to use for editing the property value.
Remarks
The priority order of value template specification is ValueTemplate, ValueTemplateSelector, ValueTemplateKey, ValueTemplateKind, and finally any value templates in matching property editors.
ValueTemplateKey
Gets the resource key that references a System.Windows.DataTemplate to use for editing the property value.
public object ValueTemplateKey { get; set; }
Property Value
- System.Object:
The resource key that references a System.Windows.DataTemplate to use for editing the property value.
Remarks
The priority order of value template specification is ValueTemplate, ValueTemplateSelector, ValueTemplateKey, ValueTemplateKind, and finally any value templates in matching property editors.
ValueTemplateKind
Gets or sets the DefaultValueTemplateKind that specifies a default value cell template to use for editing the property value.
public DefaultValueTemplateKind ValueTemplateKind { get; set; }
Property Value
- DefaultValueTemplateKind:
The DefaultValueTemplateKind that specifies a default value cell template to use for editing the property value.
Remarks
The priority order of value template specification is ValueTemplate, ValueTemplateSelector, ValueTemplateKey, ValueTemplateKind, and finally any value templates in matching property editors.
ValueTemplateSelector
Gets or sets the System.Windows.Controls.DataTemplateSelector to use for editing the property value.
public DataTemplateSelector ValueTemplateSelector { get; set; }
Property Value
- System.Windows.Controls.DataTemplateSelector:
The System.Windows.DataTemplate to use for editing the property value.
Remarks
The priority order of value template specification is ValueTemplate, ValueTemplateSelector, ValueTemplateKey, ValueTemplateKind, and finally any value templates in matching property editors.
ValueType
Gets or sets the System.Type of the Value property.
public Type ValueType { get; set; }
Property Value
- System.Type:
The System.Type of the Value property.
Methods
AddChild()
Adds a new child into to an associated collection/parent.
public virtual void AddChild()
ConvertFromString(String)
Converts the specified value from a string.
protected virtual object ConvertFromString(string stringValue)
Parameter | Type | Description |
---|---|---|
stringValue | System.String | The string value to convert. |
Returns
- System.Object:
An object from the string representation, or
null
.
ConvertToString(Object)
Converts the specified value to a string.
protected virtual string ConvertToString(object value)
Parameter | Type | Description |
---|---|---|
value | System.Object | The value to convert. |
Returns
- System.String:
A string representation of the specified value, or
null
.
CycleToNextStandardValue()
Cycles the property value to the next standard value.
public virtual bool CycleToNextStandardValue()
Returns
- System.Boolean:
true
if a standard value was set; otherwise,false
.
Dispose()
Releases all resources used by the object.
public void Dispose()
Dispose(Boolean)
Releases the unmanaged resources used by the object and optionally releases the managed resources.
protected virtual void Dispose(bool disposing)
Parameter | Type | Description |
---|---|---|
disposing | System.Boolean |
|
Remarks
This method is called by the public Dispose
method and the Finalize
method.
Dispose
invokes this method with the disposing
parameter set to true
.
Finalize
invokes this method with disposing
set to false
.
GetErrorMessages(String)
Returns the error messages for the target object or one of its properties.
protected virtual IEnumerable GetErrorMessages(string columnName)
Parameter | Type | Description |
---|---|---|
columnName | System.String | The name of the property to examine, or |
Returns
- System.Collections.IEnumerable:
The error messages that are applicable, if any.
NotifyPropertyChanged(String)
Notifies that a property has changed.
protected void NotifyPropertyChanged(string propertyName)
Parameter | Type | Description |
---|---|---|
propertyName | System.String | The name of the property that was changed. |
OnPropertyChanged(PropertyChangedEventArgs)
Raises the PropertyChanged event.
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
Parameter | Type | Description |
---|---|---|
e | System.ComponentModel.PropertyChangedEventArgs | The System.ComponentModel.PropertyChangedEventArgs that contains the event data. |
RaiseChildPropertyAddedEvent(PropertyModelChildChangeEventArgs)
Raises a collection item property added event on the PropertyGrid.
protected void RaiseChildPropertyAddedEvent(PropertyModelChildChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelChildChangeEventArgs | The |
RaiseChildPropertyAddingEvent(PropertyModelChildChangeEventArgs)
Raises a collection item property adding event on the PropertyGrid.
protected void RaiseChildPropertyAddingEvent(PropertyModelChildChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelChildChangeEventArgs | The |
RaiseChildPropertyRemovedEvent(PropertyModelChildChangeEventArgs)
Raises a collection item property removed event on the PropertyGrid.
protected void RaiseChildPropertyRemovedEvent(PropertyModelChildChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelChildChangeEventArgs | The |
RaiseChildPropertyRemovingEvent(PropertyModelChildChangeEventArgs)
Raises a collection item property removing event on the PropertyGrid.
protected void RaiseChildPropertyRemovingEvent(PropertyModelChildChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelChildChangeEventArgs | The |
RaisePropertyValueChangedEvent(PropertyModelValueChangeEventArgs)
Raises a property value changed event on the PropertyGrid.
protected void RaisePropertyValueChangedEvent(PropertyModelValueChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelValueChangeEventArgs | The |
RaisePropertyValueChangingEvent(PropertyModelValueChangeEventArgs)
Raises a property value changing event on the PropertyGrid.
protected void RaisePropertyValueChangingEvent(PropertyModelValueChangeEventArgs e)
Parameter | Type | Description |
---|---|---|
e | PropertyModelValueChangeEventArgs | The |
Refresh(PropertyRefreshReason)
Refreshes the property based on the specified reason.
public virtual void Refresh(PropertyRefreshReason reason)
Parameter | Type | Description |
---|---|---|
reason | PropertyRefreshReason | The reason the property needs to be refreshed. |
RefreshChildren()
Refreshes the contents of the Children property.
protected virtual void RefreshChildren()
Remove()
Removes the property from an associated collection/parent.
public virtual void Remove()
ResetValue()
Resets the property value to its default value.
public virtual void ResetValue()
ToString()
Returns a System.String representation of this instance.
public override string ToString()
Returns
- System.String:
A System.String representation of this instance.
Events
PropertyChanged
Occurs when a property has been changed.
public event PropertyChangedEventHandler PropertyChanged
Event Type
- System.ComponentModel.PropertyChangedEventHandler
Explicit Interface Implementations
IDataModel.get_Tag()
object IDataModel.get_Tag()
Returns
- System.Object
IDataModel.IsInitialized
Gets or sets whether the data model has been initialized.
bool IDataModel.IsInitialized { get; set; }
Returns
- System.Boolean:
true
if the data model has been initialized; otherwise,false
.
IDataModel.IsRoot
Gets whether the data model is the root.
bool IDataModel.IsRoot { get; }
Returns
- System.Boolean:
true
if the data model is the root; otherwise,false
.
IDataModel.Name
Gets the name of the data model.
string IDataModel.Name { get; }
Returns
- System.String:
The name of the data model.
IDataModel.Parent
Gets or sets the parent data model.
IDataModel.set_Tag(Object)
void IDataModel.set_Tag(object value)
Parameter | Type | Description |
---|---|---|
value | System.Object |
IPropertyModel.CanResetValue
Gets whether the property can be reset to its default value.
bool IPropertyModel.CanResetValue { get; }
Returns
- System.Boolean:
true
if the property can be reset to its default value; otherwise,false
.
Fields
CanAutoConfigureProperty
Identifies the CanAutoConfigure dependency property. This field is read-only.
public static readonly DependencyProperty CanAutoConfigureProperty
CanResetValueProperty
Identifies the CanResetValue dependency property. This field is read-only.
public static readonly DependencyProperty CanResetValueProperty
CategoryProperty
Identifies the Category dependency property. This field is read-only.
public static readonly DependencyProperty CategoryProperty
ConverterProperty
Identifies the Converter dependency property. This field is read-only.
public static readonly DependencyProperty ConverterProperty
DefaultValueProperty
Identifies the DefaultValue dependency property. This field is read-only.
public static readonly DependencyProperty DefaultValueProperty
DescriptionProperty
Identifies the Description dependency property. This field is read-only.
public static readonly DependencyProperty DescriptionProperty
DisplayNameProperty
Identifies the DisplayName dependency property. This field is read-only.
public static readonly DependencyProperty DisplayNameProperty
IsExpandedProperty
Identifies the IsExpanded dependency property. This field is read-only.
public static readonly DependencyProperty IsExpandedProperty
IsHostReadOnlyProperty
Identifies the IsHostReadOnly dependency property. This field is read-only.
public static readonly DependencyProperty IsHostReadOnlyProperty
IsImmutableProperty
Identifies the IsImmutable dependency property. This field is read-only.
public static readonly DependencyProperty IsImmutableProperty
IsLimitedToStandardValuesProperty
Identifies the IsLimitedToStandardValues dependency property. This field is read-only.
public static readonly DependencyProperty IsLimitedToStandardValuesProperty
IsModifiedProperty
Identifies the IsModified dependency property. This field is read-only.
public static readonly DependencyProperty IsModifiedProperty
IsReadOnlyProperty
Identifies the IsReadOnly dependency property. This field is read-only.
public static readonly DependencyProperty IsReadOnlyProperty
IsSelectedProperty
Identifies the IsSelected dependency property. This field is read-only.
public static readonly DependencyProperty IsSelectedProperty
IsValueReadOnlyProperty
Identifies the IsValueReadOnly dependency property. This field is read-only.
public static readonly DependencyProperty IsValueReadOnlyProperty
NamePropertyEditorProperty
Identifies the NamePropertyEditor dependency property. This field is read-only.
public static readonly DependencyProperty NamePropertyEditorProperty
NameTemplateKeyProperty
Identifies the NameTemplateKey dependency property. This field is read-only.
public static readonly DependencyProperty NameTemplateKeyProperty
NameTemplateProperty
Identifies the NameTemplate dependency property. This field is read-only.
public static readonly DependencyProperty NameTemplateProperty
NameTemplateSelectorProperty
Identifies the NameTemplateSelector dependency property. This field is read-only.
public static readonly DependencyProperty NameTemplateSelectorProperty
SortComparerProperty
Identifies the SortComparer dependency property. This field is read-only.
public static readonly DependencyProperty SortComparerProperty
SortImportanceProperty
Identifies the SortImportance dependency property. This field is read-only.
public static readonly DependencyProperty SortImportanceProperty
SortOrderProperty
Identifies the SortOrder dependency property. This field is read-only.
public static readonly DependencyProperty SortOrderProperty
StandardValuesAsStringsProperty
Identifies the StandardValuesAsStrings dependency property. This field is read-only.
public static readonly DependencyProperty StandardValuesAsStringsProperty
StandardValuesDisplayMemberPathProperty
Identifies the StandardValuesDisplayMemberPath dependency property. This field is read-only.
public static readonly DependencyProperty StandardValuesDisplayMemberPathProperty
StandardValuesProperty
Identifies the StandardValues dependency property. This field is read-only.
public static readonly DependencyProperty StandardValuesProperty
StandardValuesSelectedValuePathProperty
Identifies the StandardValuesSelectedValuePath dependency property. This field is read-only.
public static readonly DependencyProperty StandardValuesSelectedValuePathProperty
TargetProperty
Identifies the Target dependency property. This field is read-only.
public static readonly DependencyProperty TargetProperty
TargetTypeProperty
Identifies the TargetType dependency property. This field is read-only.
public static readonly DependencyProperty TargetTypeProperty
ValueProperty
Identifies the Value dependency property. This field is read-only.
public static readonly DependencyProperty ValueProperty
ValuePropertyEditorProperty
Identifies the ValuePropertyEditor dependency property. This field is read-only.
public static readonly DependencyProperty ValuePropertyEditorProperty
ValueTemplateKeyProperty
Identifies the ValueTemplateKey dependency property. This field is read-only.
public static readonly DependencyProperty ValueTemplateKeyProperty
ValueTemplateKindProperty
Identifies the ValueTemplateKind dependency property. This field is read-only.
public static readonly DependencyProperty ValueTemplateKindProperty
ValueTemplateProperty
Identifies the ValueTemplate dependency property. This field is read-only.
public static readonly DependencyProperty ValueTemplateProperty
ValueTemplateSelectorProperty
Identifies the ValueTemplateSelector dependency property. This field is read-only.
public static readonly DependencyProperty ValueTemplateSelectorProperty
ValueTypeProperty
Identifies the ValueType dependency property. This field is read-only.
public static readonly DependencyProperty ValueTypeProperty
Inherited Members
- System.Object.Equals(System.Object)
- System.Object.Equals(System.Object, System.Object)
- System.Object.ReferenceEquals(System.Object, System.Object)
- System.Object.GetHashCode()
- System.Object.GetType()
- System.Object.MemberwiseClone()
Extension Methods
- FrameworkElementExtensions.AnimateDoubleProperty(String, Double, Double, Double, Nullable<Double>, Nullable<Double>)
- FrameworkElementExtensions.BindToProperty(DependencyProperty, Object, String, BindingMode, IValueConverter, Object)
- FrameworkElementExtensions.BindToProperty(DependencyProperty, Object, DependencyProperty, BindingMode, IValueConverter, Object)
- FrameworkElementExtensions.GetCurrentSize()