The 9.2 release introduces a lot of new controls and features to our Silverlight suite. In this release we are formally introducing the concept of editors, both as standalone and as embeddable. A lot of work has been done to merge our exiting in-place edits from the AgDataGrid and our editors from WPF to create a sound framework from which we can derive things like TextEdits, DateEdits, ComboBoxes etc.
BaseEdit
An abstract control from which all other editors derive. BaseEdit provides
- the basic look and feel
- an abstraction for Display and Edit templates (recall the ColumnType templates in the AgDataGrid, but now at a much lower level)
- support for *validation* and an ErrorPresenter
* BaseEdit cannot will be used directly. Use it only to create a custom and specialized editors.
CheckEdit
<dxe:CheckEdit></dxe:CheckEdit>
DateEdit
<dxe:DateEdit></dxe:DateEdit>
ComboEdit
<dxe:ComboBoxEdit>
<dxe:ComboBoxEdit.Items>
<sys:String>Item 1</sys:String>
<sys:String>Item 2</sys:String>
<sys:String>Item 3</sys:String>
<sys:String>Item 4</sys:String>
<sys:String>Item 5</sys:String>
</dxe:ComboBoxEdit.Items>
</dxe:ComboBoxEdit>
ButtonEdit
<dxe:ButtonEdit></dxe:ButtonEdit>
<dxe:ButtonEdit>
<dxe:ButtonEdit.Buttons>
<dxe:ButtonInfo GlyphKind="Regular" IsLeft="True"/>
</dxe:ButtonEdit.Buttons>
</dxe:ButtonEdit>
TextEdit
<dxe:TextEdit></dxe:TextEdit>
<dxe:TextEdit>
<dxe:TextEdit.Mask>
<dxe:MaskProperties MaskType="DateTime"/>
</dxe:TextEdit.Mask>
</dxe:TextEdit>
<dxe:TextEdit>
<dxe:TextEdit.Mask>
<dxe:MaskProperties MaskType="Simple" EditMask="(999)000-0000"/>
</dxe:TextEdit.Mask>
</dxe:TextEdit>
TextEdit and it’s descendants (All ButtonEdit, ComboEdit etc..) supports Masking. For for editing and displaying purposes. Supported masks range from the very simple
DateTime and Numeric to the very complex powered by a Regular Expression of your choosing.
Simple Masks
<dxe:MaskProperties MaskType="Simple" EditMask="(999)000-00-00"/> // US Phone Number
<dxe:MaskProperties MaskType="Simple" EditMask="99/99/00"/> // Short Date
<dxe:MaskProperties MaskType="Simple" EditMask="90:00:00 >LL"/> // Long Time
<dxe:MaskProperties MaskType="Simple" EditMask="90:00"/> // Short Time
<dxe:MaskProperties MaskType="Simple" EditMask="999"/> // 3 Digit Phone Ext.
<dxe:MaskProperties MaskType="Simple" EditMask="000-00-0000"/> // Social Security Number
<dxe:MaskProperties MaskType="Simple" EditMask="00000-9999"/> // Long Zip Code
<dxe:MaskProperties MaskType="Simple" EditMask="00000"/> // Short Zip Code
Numeric Masks
<dxe:MaskProperties MaskType="Numeric" EditMask="c"/> // Currency
<dxe:MaskProperties MaskType="Numeric" EditMask="#,##0.00;<<#,##0.00>>"/> // Negative Number
<dxe:MaskProperties MaskType="Numeric" EditMask="n"/> // Number
<dxe:MaskProperties MaskType="Numeric" EditMask="d8"/> // 8 digits
<dxe:MaskProperties MaskType="Numeric" EditMask="p"/> // Percent (with decimals)
<dxe:MaskProperties MaskType="Numeric" EditMask="P"/> // Percent
Date and Time Masks
<dxe:MaskProperties MaskType="DateTime" EditMask="f"/> // Full
<dxe:MaskProperties MaskType="DateTime" EditMask="MM/dd/yyyy h:m:s t"/> // Custom
<dxe:MaskProperties MaskType="DateTime" EditMask="R"/> // RFC 1123
<dxe:MaskProperties MaskType="DateTime" EditMask="u"/> // Universal
<dxe:MaskProperties MaskType="DateTime" EditMask="M"/> // Month and Day
<dxe:MaskProperties MaskType="DateTime" EditMask="Year: yyyy"/> // Year
<dxe:MaskProperties MaskType="DateTime" EditMask="t"/> // Time Only
<dxe:MaskProperties MaskType="DateTime" EditMask="d, dddd"/> // Day and Day of the Week
Regular Masks
<dxe:MaskProperties MaskType="Regular" EditMask="(\d?\d?\d?)\d\d\d-\d\d-\d\d"/> // Phone Number
<dxe:MaskProperties MaskType="Regular" EditMask="\d?\d?/\d\d/\d\d"/> // Short Date
<dxe:MaskProperties MaskType="Regular" EditMask="\d?\d:\d\d:\d\d >[PA]M"/> // Long Time
<dxe:MaskProperties MaskType="Regular" EditMask="\d?\d:\d\d"/> // Short Time
RegEx Masks

<dxe:MaskProperties MaskType="RegEx" EditMask="((10|11|12|[1-9]):[0-5]\d:[0-5]\d(am|pm))|((2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9])"> // Time
<dxe:MaskProperties MaskType="RegEx" EditMask="((\+\d|8)?\(\d{3}\))?\d{3}-\d\d-\d\d"/> // Phone Number
<dxe:MaskProperties MaskType="RegEx" EditMask="([1-9]|10|11|12)/(0?[1-9]|[12]\d|30|31)/\d{2}\d{2}?"> // Short Date
<dxe:MaskProperties MaskType="RegEx" EditMask="([01]?[0-9]|2[0-3]):[0-5]\d"/> // Short Time
<dxe:MaskProperties MaskType="RegEx" EditMask="\d{3}-\d{2}-\d{4}"/> // Social Security
TextEdit and AgDataGrid
<dxg:AgDataGrid>
<dxg:AgDataGrid.Columns>
<dxg:AgDataGridColumn FieldName="CellPhone">
<dxg:AgDataGridColumn.EditSettings>
<dxes:TextEditSettings>
<dxes:TextEditSettings.Mask>
<dxe:MaskProperties MaskType="Simple" EditMask="(999)000-00-00"/>
</dxes:TextEditSettings.Mask>
</dxes:TextEditSettings>
</dxg:AgDataGridColumn.EditSettings>
</dxg:AgDataGridColumn>
</dxg:AgDataGrid.Columns>
</dxg:AgDataGrid>
Cheers,
Azret