DataGrid
The controls provided by the Editors product can be easily integrated into Microsoft's WPF DataGrid
, through the use of custom DataGridColumn
objects. An Interop assembly is provided that ties the two products together. This topic covers the various aspects of the Interop assembly.
DataGrid with Editors integrated using the Interop assembly
Interop Assembly
The Interop functionality is provided through a separate assembly, which is called ActiproSoftware.Editors.Interop.DataGrid.Wpf.dll. Therefore, a reference to this assembly must be added in order to leverage the custom DataGridColumn
objects it provides. This assembly should have been installed in the GAC during the control installation process. However, they also will be located in the appropriate Program Files folders. See the product's Readme for details on those locations.
Columns
The DataGrid
allows the columns to be statically defined in XAML via the Columns
property. The Interop assembly provides several DataGridColumn
-derived classes that leverage Editors' controls.
Note
The Editors' controls can be used in a DataGridTemplateColumn
as well, but the columns provided by the Interop assembly are typically more convenient.
The Interop assembly provides a set of classes that derive from DataGridBoundColumn
, which derives from DataGridColumn
. These classes include:
Class | Description |
---|---|
DataGridBrushColumn | Represents a property editor that uses a BrushEditBox for editing Brush property values. |
DataGridByteColumn | Represents a property editor that uses a ByteEditBox for editing Byte property values. |
DataGridColorColumn | Represents a property editor that uses a ColorEditBox for editing Color property values. |
DataGridCornerRadiusColumn | Represents a property editor that uses a CornerRadiusEditBox for editing CornerRadius property values. |
DataGridDateColumn | Represents a property editor that uses a DateEditBox for editing DateTime (date-only) property values. |
DataGridDateTimeColumn | Represents a property editor that uses a DateTimeEditBox for editing DateTime property values. |
DataGridDoubleColumn | Represents a property editor that uses a DoubleEditBox for editing Double property values. |
DataGridEnumColumn | Represents a property editor that uses a EnumEditBox for editing Enum property values. |
DataGridGuidColumn | Represents a property editor that uses a GuidEditBox for editing Guid property values. |
DataGridInt16Column | Represents a property editor that uses a Int16EditBox for editing Int16 property values. |
DataGridInt32Column | Represents a property editor that uses a Int32EditBox for editing Int32 property values. |
DataGridInt32RectColumn | Represents a property editor that uses a Int32RectEditBox for editing Int32Rect property values. |
DataGridInt64Column | Represents a property editor that uses a Int64EditBox for editing Int64 property values. |
DataGridMaskedStringColumn | Represents a property editor that uses a MaskedTextBox for editing String property values. |
DataGridPointColumn | Represents a property editor that uses a PointEditBox for editing Point property values. |
DataGridRectColumn | Represents a property editor that uses a RectEditBox for editing Rect property values. |
DataGridSingleColumn | Represents a property editor that uses a SingleEditBox for editing Single property values. |
DataGridSizeColumn | Represents a property editor that uses a SizeEditBox for editing Size property values. |
DataGridThicknessColumn | Represents a property editor that uses a ThicknessEditBox for editing Thickness property values. |
DataGridTimeColumn | Represents a property editor that uses a TimeEditBox for editing DateTime (time-only) property values. |
DataGridTimeSpanColumn | Represents a property editor that uses a TimeSpanEditBox for editing TimeSpan property values. |
DataGridVectorColumn | Represents a property editor that uses a VectorEditBox for editing Vector property values. |
Each column exposes some of the more common settings available on their associated control. For example, the DataGridMaskedStringColumn has a Mask property that allows you to set the associated Mask on the underlying MaskedTextBox.
Adding to DataGrid
The Interop columns can be defined on a single instance of the DataGrid
control using the Columns
collection.
This code shows how add the Interop column definitions to a single DataGrid
:
xmlns:datagrideditors="http://schemas.actiprosoftware.com/winfx/xaml/datagrideditors"
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
<toolkit:DataGrid AutoGenerateColumns="False" ItemsSource="...">
<toolkit:DataGrid.Columns>
<datagrideditors:DataGridBrushColumn Binding="{Binding BrushValue}" Header="Brush" />
<datagrideditors:DataGridByteColumn Binding="{Binding ByteValue}" Header="Byte" />
<datagrideditors:DataGridColorColumn Binding="{Binding ColorValue}" Header="Color" />
<datagrideditors:DataGridCornerRadiusColumn Binding="{Binding CornerRadiusValue}" Header="CornerRadius" />
<datagrideditors:DataGridDateColumn Binding="{Binding DateValue}" Header="Date" />
<datagrideditors:DataGridDateTimeColumn Binding="{Binding DateTimeValue}" Header="DateTime" />
<datagrideditors:DataGridDoubleColumn Binding="{Binding DoubleValue}" Header="Double" />
<datagrideditors:DataGridEnumColumn Binding="{Binding EnumValue}" Header="Enum" />
<datagrideditors:DataGridGuidColumn Binding="{Binding GuidValue}" Header="Guid" />
<datagrideditors:DataGridInt16Column Binding="{Binding Int16Value}" Header="Int16" />
<datagrideditors:DataGridInt32Column Binding="{Binding Int32Value}" Header="Int32" />
<datagrideditors:DataGridInt32RectColumn Binding="{Binding Int32RectValue}" Header="Int32Rect" />
<datagrideditors:DataGridInt64Column Binding="{Binding Int64Value}" Header="Int64" />
<datagrideditors:DataGridMaskedStringColumn Binding="{Binding StringValue}" Header="String" />
<datagrideditors:DataGridPointColumn Binding="{Binding PointValue}" Header="Point" />
<datagrideditors:DataGridRectColumn Binding="{Binding RectValue}" Header="Rect" />
<datagrideditors:DataGridSingleColumn Binding="{Binding SingleValue}" Header="Single" />
<datagrideditors:DataGridSizeColumn Binding="{Binding SizeValue}" Header="Size" />
<datagrideditors:DataGridThicknessColumn Binding="{Binding ThicknessValue}" Header="Thickness" />
<datagrideditors:DataGridTimeColumn Binding="{Binding TimeValue}" Header="Time" />
<datagrideditors:DataGridTimeSpanColumn Binding="{Binding TimeSpanValue}" Header="TimeSpan" />
<datagrideditors:DataGridVectorColumn Binding="{Binding VectorValue}" Header="Vector" />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>