In This Article

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.

Screenshot

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>