Back to Devexpress

DiagramDataBindingControllerBase.KeySelector Property

windowsforms-devexpress-dot-xtradiagram-dot-diagramdatabindingcontrollerbase-10752ec1.md

latest4.3 KB
Original Source

DiagramDataBindingControllerBase.KeySelector Property

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

Declaration

csharp
[DiagramCategory(DiagramCategory.Data)]
public virtual IKeySelector KeySelector { get; set; }
vb
<DiagramCategory(DiagramCategory.Data)>
Public Overridable Property KeySelector As IKeySelector

Property Value

TypeDescription
DevExpress.Diagram.Core.IKeySelector

An object implementing the DevExpress.Diagram.Core.IKeySelector interface.

|

Remarks

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.

csharp
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;
        }
    }
vb
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

csharp
diagramDataBindingController1.ItemsSelector = new ItemsSelector();
diagramDataBindingController1.KeySelector = new KeySelector();
diagramDataBindingController1.GenerateItem += DiagramDataBindingController1_GenerateItem;

winforms-generate-diagram-with-grouped-items/VB/DiagramDataControllerBehavior/Form1.vb#L24

vb
diagramDataBindingController1.ItemsSelector = New ItemsSelector()
diagramDataBindingController1.KeySelector = New KeySelector()
AddHandler diagramDataBindingController1.GenerateItem, AddressOf DiagramDataBindingController1_GenerateItem

See Also

DiagramDataBindingControllerBase Class

DiagramDataBindingControllerBase Members

DevExpress.XtraDiagram Namespace