windowsforms-devexpress-dot-xtradiagram-dot-diagramdatabindingcontrollerbase-10752ec1.md
Gets or sets the selector that returns the data field that identifies the data item.
Namespace : DevExpress.XtraDiagram
Assembly : DevExpress.XtraDiagram.v25.2.dll
NuGet Package : DevExpress.Win.Diagram
[DiagramCategory(DiagramCategory.Data)]
public virtual IKeySelector KeySelector { get; set; }
<DiagramCategory(DiagramCategory.Data)>
Public Overridable Property KeySelector As IKeySelector
| Type | Description |
|---|---|
| DevExpress.Diagram.Core.IKeySelector |
An object implementing the DevExpress.Diagram.Core.IKeySelector interface.
|
Use the KeySelector property to define a custom logic for choosing the data field that identifies the data item (e.g., when binding to data with multiple types of data objects). To do this, implement the GetKey method of the DevExpress.Diagram.Core.IKeySelector interface, so that it returns the data field that identifies the data item. See the example below.
diagramDataBindingController1.KeySelector = new DatabaseDefinitionKeySelector();
//...
public class DatabaseDefinitionKeySelector : IKeySelector {
object IKeySelector.GetKey(object obj) {
if(obj is TableDefinition)
return ((TableDefinition)obj).Name;
else if(obj is ColumnDefinition)
return ((ColumnDefinition)obj).Id;
return obj;
}
}
diagramDataBindingController1.KeySelector = New DatabaseDefinitionKeySelector()
'...
Public Class DatabaseDefinitionKeySelector
Implements IKeySelector
Private Function IKeySelector_GetKey(ByVal obj As Object) As Object Implements IKeySelector.GetKey
If TypeOf obj Is TableDefinition Then
Return DirectCast(obj, TableDefinition).Name
ElseIf TypeOf obj Is ColumnDefinition Then
Return DirectCast(obj, ColumnDefinition).Id
End If
Return obj
End Function
End Class
The following code snippet (auto-collected from DevExpress Examples) contains a reference to the KeySelector property.
Note
The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.
winforms-generate-diagram-with-grouped-items/CS/DiagramDataControllerBehavior/Form1.cs#L22
diagramDataBindingController1.ItemsSelector = new ItemsSelector();
diagramDataBindingController1.KeySelector = new KeySelector();
diagramDataBindingController1.GenerateItem += DiagramDataBindingController1_GenerateItem;
winforms-generate-diagram-with-grouped-items/VB/DiagramDataControllerBehavior/Form1.vb#L24
diagramDataBindingController1.ItemsSelector = New ItemsSelector()
diagramDataBindingController1.KeySelector = New KeySelector()
AddHandler diagramDataBindingController1.GenerateItem, AddressOf DiagramDataBindingController1_GenerateItem
See Also
DiagramDataBindingControllerBase Class