<xctk: CollectionControl>
<xctk:CollectionControl.EditorDefinitions>
</xctk:CollectionControl.EditorDefinitions>
</xctk:CollectionControl>
Any suggestions?New Post: ComboBox in CollectionControl
Updated Wiki: Advanced DataGrid
Advanced DataGrid
The normal datagrid included in both the Community and Plus Edition of Extended WPF Toolkit is a rock-solid, high performance product with zero-lag data virtualization, the ability to handle large datasets, and with many core features. Xceed offers an advanced version of this datagrid with certain added features. You can purchase it separately, or try it for 45 days here, but it is also included in the Xceed Business Suite for WPF as well.The advanced version of the DataGrid includes the following additional features:
- Master / Detail View
- Tree Grid View
- Card View
- 3D View
- Filter Row
- Insertion Row
- Auto-filter Popup
- Statistics Rows and Summary Rows
- Print / Preview
- Exporting (CSV, Excel, etc.)
- Column Chooser
- Column Splitter Control
- Persist User Settings
- Merged Column Headers
- Design-time Support
- Excel-like Drag-to-Select Rows and Cells
- Asynchronous Binding Mode
Master / Detail View
When a grid is in a table-view layout, its data items can display detail data that is usually provided by the detail descriptions defined in the DataGridCollectionView or DataGridCollectionViewSource to which the grid is bound. By default, detail descriptions are automatically created for most detail relation types; however, they can also be explicitly defined.Cannot resolve image macro, invalid image name or id.
Tree Grid View
Represents a table-view layout similar to TableflowView, in which rows are laid out horizontally as in traditional grid-like styles, but detail columns are aligned with the columns of the master, and one column displays data using a tree-structure.Like TableflowView, it provides animated smooth scrolling, sticky group headers and sticky master-detail master row and headers, full-column animated drag and drop reordering.
Cannot resolve image macro, invalid image name or id.
Card View
The CardView and CompactCardView classes provide card-view layouts for the data items in a grid. Either layout can be used to display data items as cards; however, the compact card-view layout applies well when a database has many columns but few of the fields contain data. In this case, the fields that do not contain data will not be displayed in the cards, giving them a more compact appearance.Cannot resolve image macro, invalid image name or id.
3D View
The Cardflow™ 3D view, which is represented by the CardflowView3D class, provides a 3-dimensional card-view layout for the data items in a grid and allows various card "surfaces" to display data using customized, theme-defined surface configurations.Cannot resolve image macro, invalid image name or id.
Filter Row
The FilterRow class represents a row in which values can be entered to filter the items in the corresponding columns.Cannot resolve image macro, invalid image name or id.
Insertion Row
The InsertionRow class represents a row in which values can be entered to insert a new item to the grid.Cannot resolve image macro, invalid image name or id.
Auto-filter Popup
In addition to the native CollectionView filtering, the DataGridCollectionView and DataGridDetailDescription classes also support automatic filtering, which provides Excel-like end-user filtering according to the distinct values of each column. Automatic filtering can be enabled by setting the AutoFilterMode property to And or Or (by default, None), indicating whether data items will be filtered according to all or at least one of the filtering criteria defined by each column's auto-filter control. The DistinctValuesConstraint property can also be set to determine if the distinct values are to be filtered according to the result of previous auto-filtering operations.Cannot resolve image macro, invalid image name or id.
Statistics Rows and Summary Rows
The StatRow class represents a row that can be used to display statistical results.Cannot resolve image macro, invalid image name or id.
Print / Preview
The appearance of a grid when it is printed or exported is determined by the view assigned to a grid's PrintView property and the theme assigned to the view's Theme property. When a grid is printed using the default view and theme, the resulting pages will not have headers or footers and only a column-manager row will be contained in a grid's fixed-header section regardless of the configuration of the runtime grid.The ShowPrintPreviewWindow and ShowPrintPreviewPopup methods provide print preview capabilities. ShowPrintPreviewPopup should be used when the application is being deployed as an XBAP, as XBAP applications cannot open new windows.
Exporting (CSV, Excel, etc.)
Xceed DataGrid for WPF supports exporting to the XML spreadsheet format (xmlss). These files can be loaded in Excel 2002 and up as well as through the Microsoft Office XP Web Components Spreadsheet Component. The DataGrid also supports exporting to the CSV format, which is compatible with a wide variety of applications.The DataGridControl class also exposes the ExportToXps method, which allows a grid to be exported as an XPS document.
Column Chooser
The columns that are displayed in a grid can be chosen by the user through the column-chooser context menu, which can be enabled by setting the AllowColumnChooser defined on the view to true. A column's ShowInColumnChooser property determines whether a column's title is displayed in the menu, allowing its visibility to be manipulated by an end user. By default, the column-chooser context menu displays the titles of the columns in the same order as the they are positioned; however, through the ColumnChooserSortOrder property, the order can be changed to sort the titles alphabetically.Cannot resolve image macro, invalid image name or id.
Column Splitter Control
When a grid is in a table-view layout, the first n columns can be fixed so that they do not scroll with the grid content. Fixed columns are separated from their scrollable counterparts by a fixed-column splitter, which can be dragged to add or remove fixed columns. Likewise, column-manager cells can be dragged to the left or right of the fixed-column splitter to add or remove fixed columns. The appearance of the fixed-column splitter can be defined for each row type.Cannot resolve image macro, invalid image name or id.
Persist User Settings
The settings of a grid and its elements can be persisted and re-applied using the SaveUserSettings and LoadUserSettings methods, respectively. By default, column widths, visibilities, positions, and fixed-column counts as well as grouping and sorting criteria are persisted; merged columns, their positions, and their visibilities can also be persisted. However, these settings can be modified when calling the SaveUserSettings and LoadUserSettings methods.Cannot resolve image macro, invalid image name or id.
Merged Column Headers
Merged column headers can be used to present data more clearly and logically. They are displayed in the FixedHeaders section of a grid. Columns can be grouped ("merged") under these merged headers, as can other groups of columns. Merged headers and their columns can be moved (drag-and-drop, programmatically) and removed / added back.Cannot resolve image macro, invalid image name or id.
Design-time Support
Xceed DataGrid for WPF provides design-time support for Visual Studio 2008, 2010, and 2012 and Expression Blend. In Visual Studio, the DataGridControl control will appear in the toolbox under the Xceed tab and can be added to the design surface by double-clicking on the control or through drag and drop. It's properties can then be modified through the Visual Studio property grid or by using the Xceed DataGrid for WPF Configuration Window.Cannot resolve image macro, invalid image name or id.
Excel-like Drag-to-Select Rows and Cells
The datagrid allows users to select multiple items or cells using Left-Click and then dragging the mouse within the datagrid. This allows range selection to be performed without having to hold the Shift key on the keyboard.To activate this feature, set the DataGrid's AllowDrag property to true, and the DragBehavior property to "Select". The View must be a valid instance or subclass of TableView (ex. TableFlowView, TreeGridflowView).
Asynchronous Binding Mode
The IsAsync property can be used when the get accessor of your binding source property might take a long time. One example is an image property with a get accessor that downloads from the Web. Setting IsAsync to true avoids blocking the UI while the download occurs.While waiting for the value to arrive, the binding reports the value set on the FallbackValue property, if one is available, or the default value of the binding target property.
---
Updated Wiki: Advanced DataGrid
Advanced DataGrid
The normal datagrid included in both the Community and Plus Edition of Extended WPF Toolkit is a rock-solid, high performance product with zero-lag data virtualization, the ability to handle large datasets, and with many core features. Xceed offers an advanced version of this datagrid with certain added features. You can purchase it separately, or try it for 45 days here, but it is also included in the Xceed Business Suite for WPF as well.The advanced version of the DataGrid includes the following additional features:
- Master / Detail View
- Tree Grid View
- Card View
- 3D View
- Filter Row
- Insertion Row
- Auto-filter Popup
- Statistics Rows and Summary Rows
- Print / Preview
- Exporting (CSV, Excel, etc.)
- Column Chooser
- Column Splitter Control
- Persist User Settings
- Merged Column Headers
- Design-time Support
- Excel-like Drag-to-Select Rows and Cells
- Asynchronous Binding Mode
Master / Detail View
When a grid is in a table-view layout, its data items can display detail data that is usually provided by the detail descriptions defined in the DataGridCollectionView or DataGridCollectionViewSource to which the grid is bound. By default, detail descriptions are automatically created for most detail relation types; however, they can also be explicitly defined.Tree Grid View
Represents a table-view layout similar to TableflowView, in which rows are laid out horizontally as in traditional grid-like styles, but detail columns are aligned with the columns of the master, and one column displays data using a tree-structure.Like TableflowView, it provides animated smooth scrolling, sticky group headers and sticky master-detail master row and headers, full-column animated drag and drop reordering.
Card View
The CardView and CompactCardView classes provide card-view layouts for the data items in a grid. Either layout can be used to display data items as cards; however, the compact card-view layout applies well when a database has many columns but few of the fields contain data. In this case, the fields that do not contain data will not be displayed in the cards, giving them a more compact appearance.3D View
The Cardflow™ 3D view, which is represented by the CardflowView3D class, provides a 3-dimensional card-view layout for the data items in a grid and allows various card "surfaces" to display data using customized, theme-defined surface configurations.Filter Row
The FilterRow class represents a row in which values can be entered to filter the items in the corresponding columns.Insertion Row
The InsertionRow class represents a row in which values can be entered to insert a new item to the grid.Auto-filter Popup
In addition to the native CollectionView filtering, the DataGridCollectionView and DataGridDetailDescription classes also support automatic filtering, which provides Excel-like end-user filtering according to the distinct values of each column. Automatic filtering can be enabled by setting the AutoFilterMode property to And or Or (by default, None), indicating whether data items will be filtered according to all or at least one of the filtering criteria defined by each column's auto-filter control. The DistinctValuesConstraint property can also be set to determine if the distinct values are to be filtered according to the result of previous auto-filtering operations.Statistics Rows and Summary Rows
The StatRow class represents a row that can be used to display statistical results.Print / Preview
The appearance of a grid when it is printed or exported is determined by the view assigned to a grid's PrintView property and the theme assigned to the view's Theme property. When a grid is printed using the default view and theme, the resulting pages will not have headers or footers and only a column-manager row will be contained in a grid's fixed-header section regardless of the configuration of the runtime grid.The ShowPrintPreviewWindow and ShowPrintPreviewPopup methods provide print preview capabilities. ShowPrintPreviewPopup should be used when the application is being deployed as an XBAP, as XBAP applications cannot open new windows.
Exporting (CSV, Excel, etc.)
Xceed DataGrid for WPF supports exporting to the XML spreadsheet format (xmlss). These files can be loaded in Excel 2002 and up as well as through the Microsoft Office XP Web Components Spreadsheet Component. The DataGrid also supports exporting to the CSV format, which is compatible with a wide variety of applications.The DataGridControl class also exposes the ExportToXps method, which allows a grid to be exported as an XPS document.
Column Chooser
The columns that are displayed in a grid can be chosen by the user through the column-chooser context menu, which can be enabled by setting the AllowColumnChooser defined on the view to true. A column's ShowInColumnChooser property determines whether a column's title is displayed in the menu, allowing its visibility to be manipulated by an end user. By default, the column-chooser context menu displays the titles of the columns in the same order as the they are positioned; however, through the ColumnChooserSortOrder property, the order can be changed to sort the titles alphabetically.Column Splitter Control
When a grid is in a table-view layout, the first n columns can be fixed so that they do not scroll with the grid content. Fixed columns are separated from their scrollable counterparts by a fixed-column splitter, which can be dragged to add or remove fixed columns. Likewise, column-manager cells can be dragged to the left or right of the fixed-column splitter to add or remove fixed columns. The appearance of the fixed-column splitter can be defined for each row type.Persist User Settings
The settings of a grid and its elements can be persisted and re-applied using the SaveUserSettings and LoadUserSettings methods, respectively. By default, column widths, visibilities, positions, and fixed-column counts as well as grouping and sorting criteria are persisted; merged columns, their positions, and their visibilities can also be persisted. However, these settings can be modified when calling the SaveUserSettings and LoadUserSettings methods.Merged Column Headers
Merged column headers can be used to present data more clearly and logically. They are displayed in the FixedHeaders section of a grid. Columns can be grouped ("merged") under these merged headers, as can other groups of columns. Merged headers and their columns can be moved (drag-and-drop, programmatically) and removed / added back.Design-time Support
Xceed DataGrid for WPF provides design-time support for Visual Studio 2008, 2010, and 2012 and Expression Blend. In Visual Studio, the DataGridControl control will appear in the toolbox under the Xceed tab and can be added to the design surface by double-clicking on the control or through drag and drop. It's properties can then be modified through the Visual Studio property grid or by using the Xceed DataGrid for WPF Configuration Window.Excel-like Drag-to-Select Rows and Cells
The datagrid allows users to select multiple items or cells using Left-Click and then dragging the mouse within the datagrid. This allows range selection to be performed without having to hold the Shift key on the keyboard.To activate this feature, set the DataGrid's AllowDrag property to true, and the DragBehavior property to "Select". The View must be a valid instance or subclass of TableView (ex. TableFlowView, TreeGridflowView).
Asynchronous Binding Mode
The IsAsync property can be used when the get accessor of your binding source property might take a long time. One example is an image property with a get accessor that downloads from the Web. Setting IsAsync to true avoids blocking the UI while the download occurs.While waiting for the value to arrive, the binding reports the value set on the FallbackValue property, if one is available, or the default value of the binding target property.
---
Updated Wiki: Home
Try the controls now with the Live Explorer app.
Extended WPF Toolkit™ is the number one collection of WPF controls, components and utilities for creating next generation Windows applications. Use it to build professional looking, modern, and easy to use line of business applications. The Extended WPF Toolkit project has been downloaded more than 250,000 times here and on Nuget.
The free, open source Community Edition is provided under the Microsoft Public License. The Plus Edition adds additional controls and features, email support, and is one release version ahead. The Business Suite for WPF adds the full-featured version of the industry's best datagrid and 1-year of priority support and updates.
Controls included in the Community Edition:
Additional controls and features in the Plus Edition:
Charts | ChildWindow Plus | MessageBox Plus | MultiColumnComboBox |
PileFlowPanel | PropertyGrid Plus | RadialGauge | Rating |
StyleableWindow | SwitchPanel Plus | ToggleSwitch | Ultimate ListBox |
WindowControl Plus | Metro theme | Office theme | Technical support |
1 release ahead |
Additional controls and features in the Business Suite for WPF:
Advanced DataGrid | 3D Views for WPF | Blendables for WPF | More themes |
Latest News
- June 17, 2014, released Plus Edition v2.2.1 containing 5 bug fixes (see list) and a new lower price to get the Plus Edition until August 30, 2014. Plus Edition v2.3.1 released with 6 bug fixes.
- June 2, 2014, released Plus Edition v2.3.0 containing a new controls and 30 bug fixes and improvements. Released Community Edition v2.2.0, containing two new controls and 15 bug fixes and improvements (see list).
- Feb. 20, 2014, released Plus Edition v2.2.0 containing 4 new controls and 20 bug fixes and improvements. Released Community Edition v2.1.0, containing 70 bug fixes and improvements (see list).
Action items
- Enjoy WPF!
- Please rate this release and write something positive. It's at the bottom of the downloads page
- Follow this project (click "follow" at the top right of this page)
- Follow @datagrid on Twitter for WPF and Toolkit news
- Like Xceed's WPF page on Facebook
- Check out a video or two on XceedVideos YouTube Channel
- Add bugs or feature requests to the Issue Tracker
Updated Wiki: Compare Editions
Compare Extended WPF Toolkit Editions
The free, open source Community Edition is provided here on CodePlex under the Microsoft Public License. ThePlus Edition is one release ahead, adds additional controls and features, and includes support by email. The Xceed Business Suite for WPF adds the full-featured version of the industry's best datagrid and a 1-year priority support and updates subscription.
Here is a detailed table with the features in each edition:
|
| Xceed Business Suite | |
Free | $99.95 | $1799.95 | |
buy now | buy now | ||
General features | |||
WPF controls | 43 | 51 | 90 |
Toolkit version | v2.2.1 | v2.3.1 | v2.3.1 |
2D layouts and panels | 2 | 14 | 14 |
Windows 8 theme to match base WPF controls | YES | YES | YES |
Metro theme (also themes base WPF controls) | YES | YES | |
Office theme (also themes base WPF controls) | YES | YES | |
Your issues and suggestions get priority | YES | YES | |
Plus Edition of PropertyGrid and other controls | YES | YES | |
Advanced features in DataGrid control | YES | ||
Xceed 3D Views for WPF | YES | ||
Xceed Blendables for WPF | YES | ||
1-year of priority support and updates | YES | ||
Detailed list of controls | |||
Charts | YES | YES | |
Multi-column ComboBox | YES | YES | |
Pileflow | YES | YES | |
RadialGauge | YES | YES | |
RatingControl | YES | YES | |
StyleableWindow | YES | YES | |
ToggleSwitch | YES | YES | |
Ultimate ListBox | YES | YES | |
AvalonDock (Docking windows) | YES | YES | YES |
AutoSelectTextBox | YES | YES | YES |
BusyIndicator | YES | YES | YES |
ButtonSpinner | YES | YES | YES |
ByteUpDown | YES | YES | YES |
Calculator | YES | YES | YES |
CalculatorUpDown | YES | YES | YES |
CheckComboBox | YES | YES | YES |
CheckListBox | YES | YES | YES |
ChildWindow | YES | YES | YES |
CollectionEditor | YES | YES | YES |
CollectionControlDialog | YES | YES | YES |
ColorCanvas | YES | YES | YES |
ColorPicker | YES | YES | YES |
DataGrid | YES | YES | YES |
DateTimePicker | YES | YES | YES |
DateTimeUpDown | YES | YES | YES |
DecimalUpDown | YES | YES | YES |
DoubleUpDown | YES | YES | YES |
DropDownButton | YES | YES | YES |
IntegerUpDown | YES | YES | YES |
LongUpDown | YES | YES | YES |
Magnifier | YES | YES | YES |
MaskedTextBox | YES | YES | YES |
MessageBox | YES | YES | YES |
MultiLineTextEditor | YES | YES | YES |
PieChart | YES | YES | YES |
PrimitiveTypeCollectionEditor | YES | YES | YES |
PropertyGrid | YES | YES | YES |
RangeSlider | YES | YES | YES |
RichTextBox | YES | YES | YES |
RichTextBoxFormatBar | YES | YES | YES |
SplitButton | YES | YES | YES |
SwitchPanel | YES | YES | YES |
TimelinePanel | YES | YES | YES |
TimePicker | YES | YES | YES |
TimeSpanUpDown | YES | YES | YES |
ValueRangeTextBox | YES | YES | YES |
WatermarkTextBox | YES | YES | YES |
WindowContainer | YES | YES | YES |
WindowControl | YES | YES | YES |
Wizard | YES | YES | YES |
Zoombox | YES | YES | YES |
PropertyGrid Plus features | |||
Custom properties | YES | YES | |
Advanced setting of property editors | YES | YES | |
Expandable properties when multi-selecting | YES | YES | |
Collapse categories with specific attributes | YES | YES | |
Attributes for localization | YES | YES | |
Override property's editor definitions | YES | YES | |
Insert/remove properties at runtime | YES | YES | |
List source for properties | YES | YES | |
Show common properties of multiple objects | YES | YES | |
Custom properties list | YES | YES | |
Validation when using multi-selected objects | YES | YES | |
Category ordering without attributes | YES | YES | |
ChildWindow, MessageBox, ChildWindow Plus | |||
Resize and maximize features | YES | YES | |
SwitchPanel panels and layouts | |||
WrapPanel | YES | YES | YES |
RandomPanel | YES | YES | YES |
AnimatedTimelinePanel | YES | YES | |
AutoStretchStackPanel | YES | YES | |
CameraPanel | YES | YES | |
Canvas | YES | YES | |
Carousel | YES | YES | |
DockPanel | YES | YES | |
Grid | YES | YES | |
PerspectivePanel | YES | YES | |
RadialCanvas | YES | YES | |
RelativeCanvas | YES | YES | |
StackedStackPanel | YES | YES | |
StackPanel | YES | YES | |
Professional DataGrid features | |||
Master/detail view | YES | ||
Tree grid view | YES | ||
Card view | YES | ||
3D view | YES | ||
Filter row | YES | ||
Insertion row | YES | ||
Auto-filter popup | YES | ||
Statistics rows and summary rows | YES | ||
Print/preview | YES | ||
Exporting (CSV, Excel, etc.) | YES | ||
Column chooser | YES | ||
Column splitter control | YES | ||
Persist user settings | YES | ||
Merged column headers | YES | ||
Design-time support | YES | ||
Excel-like drag-to-select rows and cells | YES | ||
Asynchronous binding mode | YES | ||
Community Edition | Plus Edition | Business Suite | |
Free | $99.95* | $1799.95 | |
buy now | buy now |
*Limited time offer until August 30, 2014.
Created Unassigned: Stripes [21134]
is there and options to change the style of the axis stripes.
thanks.
Updated Wiki: PropertyGrid Plus
PropertyGrid Plus
Derives from ControlA version of the PropertyGrid with 13 additional Features:
1) Custom Properties
Create PropertyItems by specifying their characteristics (DisplayName, Value, Category, Description, Editor…). These CustomPropertyItems should be added to the PropertyGrid.Properties collection. The PropertyGrid will then display this collection of custom properties. The display of each property can be individually controlled.
- LiveExplorer sample : PropertyGrid/Using a CustomList/CustomProperties
2) DefinitionKey Attribute (For Editors)
The DefinitionKey attribute can be assigned to properties of your selected object to define which EditorDefinition to be applied to the property. As an alternative to the Editor attribute, this allows you separate the UI-specific code from your business model code. It can also be used to specify a specific default editor when a property type does not resolve to a valid editor (e.g., Object).
In the following example, the properties FirstName and LastName will use a TextEditor.
[DefinitionKey( "nameType" )] public string FirstName { get; set; } [DefinitionKey( "nameType" )] public string LastName { get; set; } public object ReferenceNo { get; set; } <xctk:EditorTextDefinition TargetProperties="nameType" />
- LiveExplorer sample : PropertyGrid/UsingSelectedObjects/DefinitionKeyAttribute
3) Expandable properties when multiple objects are selected
Expandable properties will work when using multi-selected object in a PropertGrid. The selectedObjects must have common expandable properties.
4) Ability to collapse specific categories with a given class attribute
You can use the ExpandedCategory attribute to make a specific category Collapsed or Expanded by default.
In the following example, the Category “Connections” is Collapsed by default.
[ExpandedCategory( "Conections", false )] Public class Person { [Category( "Conections" )] public List<Person> Friends { get; set; } [Category( "Conections" )] public string LastName { get; set; } [Category( "Information" )] public string FirstName { get; set; } }
- LiveExplorer sample : PropertyGrid/UsingSelectedObjects/UsingAttributes
5) Attributes for localization
LocalizedDisplayName, LocalizedDescription, LocalizedCategory: Theses attributes allow to easily localize the DisplayName, Description, and Category attributes values using standard Resx resource files.
public class Person { [LocalizedDisplayName( "FirstName", typeof( DisplayLocalizationRes ) )] [LocalizedDescription( "FirstNameDesc", typeof( DisplayLocalizationRes ) )] [LocalizedCategory( "InfoCategory", typeof( DisplayLocalizationRes ) )] public string FirstName { get; set; } } // DisplayLocalizationRes is a resx file.
- LiveExplorer sample : PropertyGrid/UsingSelectedObjects/Localization
6) Override property's editor definitions
The EditorDefinition classes can be overridden to fits your needs.
7) PropertiesSource string collections are editable
When setting the PropertiesSource or Properties property, you can provide your own data to be displayed in the PropertyGrid. This allows you to easily insert and remove properties at runtime. The usage scheme is similar to the one used for the standard ItemsControl.
The following example uses the MyData object to create a collection of 2 properties to fill the PropertyGrid.
<xctk:PropertyGrid x:Name="_propertyGrid" PropertiesSource="{Binding}" PropertyNameBinding="{Binding MyName}" PropertyValueBinding="{Binding MyValue}" > var list = new ObservableCollection<object>(); list.Add( new MyData( "string", "First text" ) ); list.Add( new MyData( "Second string", "Second text" ) ); this.DataContext = list; private class MyData { public MyData( string name, object value ) { this.MyName = name; this.MyValue = value; } public string MyName { get; set; } public object MyValue { get; set; } }
- LiveExplorer sample : PropertyGrid/Using a CustomList
8) List source for properties added
Same as 7. A list or collection can be provided to the PropertyGrid using its PropertiesSource property.
9) Multi-Selected Objects
When many objects are assigned to a PropertyGrid, the PropertyGrid will show all the common properties so that they can be changed simultaneously on each object.
- LiveExplorer sample : PropertyGrid/UwingSelectedObject/Multi-Selected Objects
10) Custom properties list
CustomPropertyItems can be added to the PropertyGrid.Properties like in point 1.
A list of CustomProperties can be passed to the PropertyGrid.PropertiesSource like in point 7.
11) within the PropertyGrid.SelectedObjects collection
The Validation of wrong inputs will be done when using Multi-Selected Objects on a PropertyGrid.
12) Category ordering without attributes
You can set the category ordering without having to add CategoryOrderAttributes to selected objects.
13) Validation display for multi-selected objects
When using multiple selected objects, the validation red border will now be displayed on invalid input.
When a wrong value is typed in a propertyGrid having muli-selected objects, the red border will appear around the propertyItem in the PropertyGrid.
- Live Explorer sample : PropertyGrid/Using SelectedObject/Multi-Selected Objects
Properties
Property | Description |
---|---|
* | All the Properties from PropertyGrid |
CategoryDefinitions | Gets or sets the CategoryDefinition collection sed to set the categories. |
CategoryGroupDefinitions | Gets or sets the GroupDescription to be applied on the source items in order to define the groups when the PropertyGrid is Categorized. |
PropertyNameBinding | Gets or sets the Binding to be used on the property's underlying item to get the name of the property to display. |
PropertyValueBinding | Gets or sets the Binding to be used on the property's underlying item to get the value of the property to display. |
DefaultEditorDefinition | Gets or sets the default editor definition to use when the property value type is not supported. |
PropertiesSource | Gets or sets the items source for the properties of the PropertyGrid. |
PropertyContainerStyle | Gets or sets the style that will be applied to all PropertyItemBase instances displayed in the property grid. |
SelectedObjects | Gets the currently selected objects the PropertyGrid is inspecting. |
SelectedObjectsOverride | Gets or sets the list of selected objects. |
---
Updated Wiki: Compare Editions
Compare Extended WPF Toolkit Editions
The free, open source Community Edition is provided here on CodePlex under the Microsoft Public License. ThePlus Edition is one release ahead, adds additional controls and features, and includes support by email. The Xceed Business Suite for WPF adds the full-featured version of the industry's best datagrid and a 1-year priority support and updates subscription.
Here is a detailed table with the features in each edition:
|
| Xceed Business Suite | |
Free | $99.95 | $1799.95 | |
buy now | buy now | ||
General features | |||
WPF controls | 43 | 51 | 90 |
Toolkit version | v2.2.1 | v2.3.1 | v2.3.1 |
2D layouts and panels | 2 | 14 | 14 |
Windows 8 theme to match base WPF controls | YES | YES | YES |
Metro theme (also themes base WPF controls) | YES | YES | |
Office theme (also themes base WPF controls) | YES | YES | |
Your issues and suggestions get priority | YES | YES | |
Plus Edition of PropertyGrid and other controls | YES | YES | |
Advanced features in DataGrid control | YES | ||
Xceed 3D Views for WPF | YES | ||
Xceed Blendables for WPF | YES | ||
1-year of priority support and updates | YES | ||
Detailed list of controls | |||
Charts | YES | YES | |
Multi-column ComboBox | YES | YES | |
PileFlowPanel | YES | YES | |
RadialGauge | YES | YES | |
Rating | YES | YES | |
StyleableWindow | YES | YES | |
ToggleSwitch | YES | YES | |
Ultimate ListBox | YES | YES | |
AvalonDock (Docking windows) | YES | YES | YES |
AutoSelectTextBox | YES | YES | YES |
BusyIndicator | YES | YES | YES |
ButtonSpinner | YES | YES | YES |
ByteUpDown | YES | YES | YES |
Calculator | YES | YES | YES |
CalculatorUpDown | YES | YES | YES |
CheckComboBox | YES | YES | YES |
CheckListBox | YES | YES | YES |
ChildWindow | YES | YES | YES |
CollectionControl | YES | YES | YES |
CollectionControlDialog | YES | YES | YES |
ColorCanvas | YES | YES | YES |
ColorPicker | YES | YES | YES |
DataGrid | YES | YES | YES |
DateTimePicker | YES | YES | YES |
DateTimeUpDown | YES | YES | YES |
DecimalUpDown | YES | YES | YES |
DoubleUpDown | YES | YES | YES |
DropDownButton | YES | YES | YES |
IntegerUpDown | YES | YES | YES |
LongUpDown | YES | YES | YES |
Magnifier | YES | YES | YES |
MaskedTextBox | YES | YES | YES |
MessageBox | YES | YES | YES |
MultiLineTextEditor | YES | YES | YES |
PieChart | YES | YES | YES |
PrimitiveTypeCollectionEditor | YES | YES | YES |
PropertyGrid | YES | YES | YES |
RangeSlider | YES | YES | YES |
RichTextBox | YES | YES | YES |
RichTextBoxFormatBar | YES | YES | YES |
SplitButton | YES | YES | YES |
SwitchPanel | YES | YES | YES |
TimelinePanel | YES | YES | YES |
TimePicker | YES | YES | YES |
TimeSpanUpDown | YES | YES | YES |
ValueRangeTextBox | YES | YES | YES |
WatermarkTextBox | YES | YES | YES |
WindowContainer | YES | YES | YES |
WindowControl | YES | YES | YES |
Wizard | YES | YES | YES |
Zoombox | YES | YES | YES |
PropertyGrid Plus features | |||
Custom properties | YES | YES | |
Advanced setting of property editors | YES | YES | |
Expandable properties when multi-selecting | YES | YES | |
Collapse categories with specific attributes | YES | YES | |
Attributes for localization | YES | YES | |
Override property's editor definitions | YES | YES | |
Insert/remove properties at runtime | YES | YES | |
List source for properties | YES | YES | |
Show common properties of multiple objects | YES | YES | |
Custom properties list | YES | YES | |
Category ordering without attributes | YES | YES | |
Validation when using multi-selected objects | YES | YES | |
ChildWindow, MessageBox, ChildWindow Plus | |||
Resize and maximize features | YES | YES | |
SwitchPanel panels and layouts | |||
WrapPanel | YES | YES | YES |
RandomPanel | YES | YES | YES |
AnimatedTimelinePanel | YES | YES | |
AutoStretchStackPanel | YES | YES | |
CameraPanel | YES | YES | |
Canvas | YES | YES | |
Carousel | YES | YES | |
DockPanel | YES | YES | |
Grid | YES | YES | |
PerspectivePanel | YES | YES | |
RadialCanvas | YES | YES | |
RelativeCanvas | YES | YES | |
StackedStackPanel | YES | YES | |
StackPanel | YES | YES | |
Professional DataGrid features | |||
Master/detail view | YES | ||
Tree grid view | YES | ||
Card view | YES | ||
3D view | YES | ||
Filter row | YES | ||
Insertion row | YES | ||
Auto-filter popup | YES | ||
Statistics rows and summary rows | YES | ||
Print/preview | YES | ||
Exporting (CSV, Excel, etc.) | YES | ||
Column chooser | YES | ||
Column splitter control | YES | ||
Persist user settings | YES | ||
Merged column headers | YES | ||
Design-time support | YES | ||
Excel-like drag-to-select rows and cells | YES | ||
Asynchronous binding mode | YES | ||
Community Edition | Plus Edition | Business Suite | |
Free | $99.95* | $1799.95 | |
buy now | buy now |
*Limited time offer until August 30, 2014.
Updated Wiki: Compare Editions
Compare Extended WPF Toolkit Editions
The free, open source Community Edition is provided here on CodePlex under the Microsoft Public License. ThePlus Edition is one release ahead, adds additional controls and features, and includes support by email. The Xceed Business Suite for WPF adds the full-featured version of the industry's best datagrid and a 1-year priority support and updates subscription.
Here is a detailed table with the features in each edition:
|
| Xceed Business Suite | |
Free | $99.95 | $1799.95 | |
buy now | buy now | ||
General features | |||
WPF controls | 43 | 51 | 90 |
Toolkit version | v2.2.1 | v2.3.1 | v2.3.1 |
2D layouts and panels | 2 | 14 | 14 |
Windows 8 theme to match base WPF controls | YES | YES | YES |
Metro theme (also themes base WPF controls) | YES | YES | |
Office theme (also themes base WPF controls) | YES | YES | |
Your issues and suggestions get priority | YES | YES | |
Plus Edition of PropertyGrid and other controls | YES | YES | |
Advanced features in DataGrid control | YES | ||
Xceed 3D Views for WPF | YES | ||
Xceed Blendables for WPF | YES | ||
1-year of priority support and updates | YES | ||
Detailed list of controls | |||
Charts | YES | YES | |
Multi-column ComboBox | YES | YES | |
PileFlowPanel | YES | YES | |
RadialGauge | YES | YES | |
Rating | YES | YES | |
StyleableWindow | YES | YES | |
ToggleSwitch | YES | YES | |
Ultimate ListBox | YES | YES | |
AvalonDock (Docking windows) | YES | YES | YES |
AutoSelectTextBox | YES | YES | YES |
BusyIndicator | YES | YES | YES |
ButtonSpinner | YES | YES | YES |
ByteUpDown | YES | YES | YES |
Calculator | YES | YES | YES |
CalculatorUpDown | YES | YES | YES |
CheckComboBox | YES | YES | YES |
CheckListBox | YES | YES | YES |
ChildWindow | YES | YES | YES |
CollectionControl | YES | YES | YES |
CollectionControlDialog | YES | YES | YES |
ColorCanvas | YES | YES | YES |
ColorPicker | YES | YES | YES |
DataGrid | YES | YES | YES |
DateTimePicker | YES | YES | YES |
DateTimeUpDown | YES | YES | YES |
DecimalUpDown | YES | YES | YES |
DoubleUpDown | YES | YES | YES |
DropDownButton | YES | YES | YES |
IntegerUpDown | YES | YES | YES |
LongUpDown | YES | YES | YES |
Magnifier | YES | YES | YES |
MaskedTextBox | YES | YES | YES |
MessageBox | YES | YES | YES |
MultiLineTextEditor | YES | YES | YES |
PieChart | YES | YES | YES |
PrimitiveTypeCollectionEditor | YES | YES | YES |
PropertyGrid | YES | YES | YES |
RangeSlider | YES | YES | YES |
RichTextBox | YES | YES | YES |
RichTextBoxFormatBar | YES | YES | YES |
ShortUpDown | YES | YES | YES |
SingleUpDown | YES | YES | YES |
SplitButton | YES | YES | YES |
SwitchPanel | YES | YES | YES |
TimelinePanel | YES | YES | YES |
TimePicker | YES | YES | YES |
TimeSpanUpDown | YES | YES | YES |
ValueRangeTextBox | YES | YES | YES |
WatermarkTextBox | YES | YES | YES |
WindowContainer | YES | YES | YES |
WindowControl | YES | YES | YES |
Wizard | YES | YES | YES |
Zoombox | YES | YES | YES |
PropertyGrid Plus features | |||
Custom properties | YES | YES | |
Advanced setting of property editors | YES | YES | |
Expandable properties when multi-selecting | YES | YES | |
Collapse categories with specific attributes | YES | YES | |
Attributes for localization | YES | YES | |
Override property's editor definitions | YES | YES | |
Insert/remove properties at runtime | YES | YES | |
List source for properties | YES | YES | |
Show common properties of multiple objects | YES | YES | |
Custom properties list | YES | YES | |
Category ordering without attributes | YES | YES | |
Validation when using multi-selected objects | YES | YES | |
ChildWindow, MessageBox, ChildWindow Plus | |||
Resize and maximize features | YES | YES | |
SwitchPanel panels and layouts | |||
WrapPanel | YES | YES | YES |
RandomPanel | YES | YES | YES |
AnimatedTimelinePanel | YES | YES | |
AutoStretchStackPanel | YES | YES | |
CameraPanel | YES | YES | |
Canvas | YES | YES | |
Carousel | YES | YES | |
DockPanel | YES | YES | |
Grid | YES | YES | |
PerspectivePanel | YES | YES | |
RadialCanvas | YES | YES | |
RelativeCanvas | YES | YES | |
StackedStackPanel | YES | YES | |
StackPanel | YES | YES | |
Professional DataGrid features | |||
Master/detail view | YES | ||
Tree grid view | YES | ||
Card view | YES | ||
3D view | YES | ||
Filter row | YES | ||
Insertion row | YES | ||
Auto-filter popup | YES | ||
Statistics rows and summary rows | YES | ||
Print/preview | YES | ||
Exporting (CSV, Excel, etc.) | YES | ||
Column chooser | YES | ||
Column splitter control | YES | ||
Persist user settings | YES | ||
Merged column headers | YES | ||
Design-time support | YES | ||
Excel-like drag-to-select rows and cells | YES | ||
Asynchronous binding mode | YES | ||
Community Edition | Plus Edition | Business Suite | |
Free | $99.95* | $1799.95 | |
buy now | buy now |
*Limited time offer until August 30, 2014.
Created Unassigned: RangeSlider DataBinding [21135]
I have a RangeSlider in a DataTemplate. The Binding to LowerValue and HigherValue does not work correctly.
```
<DataTemplate DataType="{x:Type vm:NumericFilter}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox x:Name="tbSelectedMin"
Text="{Binding Path=SelectedMin}"
HorizontalAlignment="Left" />
<Button Content="Reset"
Command="{Binding Path=ResetCommand}"
HorizontalAlignment="Center" />
<TextBox x:Name="tbSelctedMax"
Text="{Binding Path=SelectedMax}"
HorizontalAlignment="Right" />
<xctk:RangeSlider x:Name="rsRange"
Grid.Row="1"
Minimum="{Binding Path=Min}"
Maximum="{Binding Path=Max}"
HigherValue="{Binding Path=SelectedMax, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
LowerValue="{Binding Path=SelectedMin,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</DataTemplate>
```
Updated Wiki: DataGrid
DataGrid
The datagrid included in Extended WPF Toolkit provides a stunning, shaded appearance and capabilities such as inertial smooth scrolling and animated full-column reordering—which mimics the physics of real-life movement. Add to that the datagrid’s zero-lag data virtualization, and you have the fastest WPF datagrid around—in performance and feel. It also easily handles millions of rows and thousands of columns, and integrates quickly into any WPF app.This datagrid was the first datagrid for WPF. It was released in 2007 and has been updated 50 times since then. It is used in many major business applications, and is also used by portions of Visual Studio 2010 and 2012.
The datagrid control is contained in a separate assembly, Xceed.Wpf.DataGrid, which must be added to your project and then referenced where necessary.
Note: You can find complete documentation of the API here. You can also find detailed descriptions of how the various classes work together in the Xceed DataGrid for WPF documentation, but please bear in mind that that product's documentation covers features that may not be available in this Toolkit version.
See the Advanced DataGrid page for a list of differences between the Toolkit's datagrid and the advanced edition, Xceed DataGrid for WPF.
Usage
XAML<sample:DemoView x:Class="Samples.Modules.DataGrid.Views.HomeView" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sample="clr-namespace:Samples.Infrastructure.Controls;assembly=Samples.Infrastructure" xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid" xmlns:compModel="clr-namespace:System.ComponentModel;assembly=WindowsBase" xmlns:local="clr-namespace:Samples.Modules.DataGrid" Title="DataGrid" x:Name="_demo"> <sample:DemoView.Description> Extended WPF Toolkit DataGrid control sample. </sample:DemoView.Description> <Grid> <Grid.Resources> <xcdg:DataGridCollectionViewSource x:Key="cvsOrders" Source="{Binding ElementName=_demo, Path=Orders}"> <xcdg:DataGridCollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="ShipCountry" /> <PropertyGroupDescription PropertyName="ShipCity" /> </xcdg:DataGridCollectionViewSource.GroupDescriptions> </xcdg:DataGridCollectionViewSource> </Grid.Resources> <xcdg:DataGridControl x:Name="_dataGrid" MaxHeight="400" ItemsSource="{Binding Source={StaticResource cvsOrders} }" > <xcdg:DataGridControl.View> <xcdg:TableflowView FixedColumnCount="2" /> </xcdg:DataGridControl.View> <xcdg:DataGridControl.Columns> <!--Preconfigure the OrderID Column of the grid with CellValidationRule. --> <xcdg:Column FieldName="OrderID" IsMainColumn="True"> <xcdg:Column.CellValidationRules> <local:UniqueIDCellValidationRule /> </xcdg:Column.CellValidationRules> </xcdg:Column> </xcdg:DataGridControl.Columns> </xcdg:DataGridControl> </Grid> </sample:DemoView>
Code behind
using Microsoft.Practices.Prism.Regions; using Samples.Infrastructure.Controls; using Xceed.Wpf.DataGrid.Samples.SampleData; using System.Data; using Xceed.Wpf.DataGrid; namespace Samples.Modules.DataGrid.Views { /// <summary> /// Interaction logic for HomeView.xaml /// </summary> [RegionMemberLifetime( KeepAlive = false )] public partial class HomeView : DemoView { public HomeView() { this.Orders = DataProvider.GetNorthwindDataSet().Tables[ "Orders" ]; InitializeComponent(); } public DataTable Orders { get; private set; } } }
New Post: childwindow & windowcontainer
I've written a PRISM regionadapter for WindowContainer
When a ViewModel is placed in the region, it wraps it in a ChildWindow object, and adds it to the WindowContainer's Children collection.
This all works fine.
When the window is closed though, it does not remove the ChildWindow from the WindowContainer's Children collection. The ChildWindow's Parent etc is set to null though & when I manually try to remove it from the Children collection, I get a null reference exception
Thanx
Hein
Commented Unassigned: EditorComboBoxDefinition ItemsSource [21116]
I am trying to use the Propertygrid (Plus version) to build a dynamic properties list.
I have been looking at the Custom Properties List examples but I am struggling to populate a combobox
with a list of string values built at runtime. I can't use an enum as I don't know the available values until a database is read.
I'm using MVVM and have bound my view to a view model.
I have created a new test class that contains a List of available strings and the currently selected string.
I am binding the test class MyData to the propertygrid properties source as in the example
```
public class ObjectWithNames
{
public ObservableCollection<string> Names { get; set; }
public string ObjectName { get; set; }
public override string ToString()
{
return ObjectName;
}
}
public class MyData
{
public MyData(string name, object value, string category)
{
this.MyName = name;
this.MyValue = value;
this.Category = category;
}
public MyData(string name, object value)
{
this.MyName = name;
this.MyValue = value;
this.Category = "Misc";
}
public string Category { get; set; }
public string MyName { get; set; }
public object MyValue { get; set; }
}
```
In My View Model I have a list of MyData objects
```
public ObservableCollection<object> SelectedLru
{
get { return _properties; }
}
private void BuildDummyProperties()
{
...
_properties.Add(new MyData("TestNames", (ObjectWithNames)new ObjectWithNames() { ObjectName = "Option 1", Names = new ObservableCollection<string>() { "Option 1", "Option 2" } }));
...
}
```
My View binds the properties source to the list of mydata objects.
I then set the xctk:EditorComboBoxDefinition TargetProperties to my test class ObjectWithNames.
```
<xctk:PropertyGrid x:Name="propertyGrid" Grid.Row="2"
PropertiesSource="{Binding SelectedLru}"
PropertyNameBinding="{Binding MyName}"
PropertyValueBinding="{Binding MyValue}">
<xctk:PropertyGrid.CategoryGroupDescription>
<PropertyGroupDescription PropertyName="Category"/>
</xctk:PropertyGrid.CategoryGroupDescription>
<xctk:PropertyGrid.Resources>
<local:MyConverter x:Key="myConverter"/>
</xctk:PropertyGrid.Resources>
<xctk:PropertyGrid.EditorDefinitions>
<xctk:EditorComboBoxDefinition TargetProperties="{x:Type local:ObjectWithNames}"
ItemsSource="{Binding MyValue.Names}
SelectedItemBinding="{Binding MyValue, Converter={StaticResource myConverter}" />
</xctk:PropertyGrid.EditorDefinitions>
</xctk:PropertyGrid>
```
This all works when the combobox items source is a static resource as in the example
```
<x:Array x:Key="comboSource1" Type="s:String" >
<s:String>String Value 1</s:String>
<s:String>String Value 2</s:String>
<s:String>String Value 3</s:String>
</x:Array>
```
However I am struggling to work out how to set the items source to the collection of strings in the ObjectWithNames class. I have tried using a Converter to see what is going on but that never seems to be called.
```
<xctk:EditorComboBoxDefinition TargetProperties="{x:Type local:ObjectWithNames}"
ItemsSource="{Binding MyValue, Converter={StaticResource myValuesConverter}"
SelectedItemBinding="{Binding MyValue, Converter={StaticResource myConverter}"
```
Any ideas would be appreciated. Is there an easier way to build the combo box items dynamically or at runtime?
Cheers
Jonathan
Comments: ** Comment from web user: emartin **
I think the support should have fowarded my answer by now.
New Comment on "MessageBox"
Created Unassigned: ColorPicker: Eats 2 Tabs to move to next ctrl [21141]
New Post: Wizard Databinding
i have the following XAML:
<Window x:Class="ICSharpCode.Reporting.Addin.ReportWizard.Dialog.ReportWizard"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:local="clr-namespace:ICSharpCode.Reporting.Addin.ReportWizard.Dialog"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
Title="{Binding Title}"
Height="600" Width="600">
<Grid>
<xctk:Wizard x:Name="_wizard" FinishButtonClosesWindow="True"
CurrentPage="{Binding CurrentPage,
UpdateSourceTrigger=PropertyChanged,
diagnostics:PresentationTraceSources.TraceLevel=High }
CanHelp="False" >
<local:PageOne></local:PageOne>
......more xamlMy Viewmodel:
public string Title { get{ return "das ist der Title";}
}
WizardPage currentPage;
public WizardPage CurrentPage {
get {return currentPage;}
set { currentPage = value;}
}
and have Problems with Databinding.The binding to Title is working, but i'm not able to bind to CurrentPage.
Any idea's ?????
Thanks in advance
Peter
New Comment on "TimeSpanUpDown"
New Post: Wizard Databinding
Edited Issue: RangeSlider DataBinding [21135]
I have a RangeSlider in a DataTemplate. The Binding to LowerValue and HigherValue does not work correctly.
```
<DataTemplate DataType="{x:Type vm:NumericFilter}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox x:Name="tbSelectedMin"
Text="{Binding Path=SelectedMin}"
HorizontalAlignment="Left" />
<Button Content="Reset"
Command="{Binding Path=ResetCommand}"
HorizontalAlignment="Center" />
<TextBox x:Name="tbSelctedMax"
Text="{Binding Path=SelectedMax}"
HorizontalAlignment="Right" />
<xctk:RangeSlider x:Name="rsRange"
Grid.Row="1"
Minimum="{Binding Path=Min}"
Maximum="{Binding Path=Max}"
HigherValue="{Binding Path=SelectedMax, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
LowerValue="{Binding Path=SelectedMin,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}" />
</Grid>
</DataTemplate>
```
while "normal" sliders work as expected:
```
<StackPanel Grid.Row="1">
<Slider Minimum="{Binding Path=Min}"
Maximum="{Binding Path=Max}"
Value="{Binding Path=SelectedMin, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Slider Minimum="{Binding Path=Min}"
Maximum="{Binding Path=Max}"
Value="{Binding Path=SelectedMax, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
```
Comments: ** Comment from web user: emartin **
Fixed in next version
Created Unassigned: DecimalUpDown/ NumericUpDown should accept some string values or specific format(regex) [21145]
Please help me on same or suggest the solution.
Regards,
Ankur