windowsforms-devexpress-dot-xtradiagram-dot-diagramdatabindingcontrollerbase-8ee39478.md
Fires before generating a diagram item representing a data object and allows you to customize it.
Namespace : DevExpress.XtraDiagram
Assembly : DevExpress.XtraDiagram.v25.2.dll
NuGet Package : DevExpress.Win.Diagram
public event EventHandler<DiagramGenerateItemEventArgs> GenerateItem
Public Event GenerateItem As EventHandler(Of DiagramGenerateItemEventArgs)
The GenerateItem event's data class is DevExpress.XtraDiagram.DiagramGenerateItemEventArgs.
By default, the uppermost diagram item defined in XAML within the DiagramDataBindingControllerBase.TemplateDiagram is used as the template for the diagram items representing data objects.
You can use the GenerateItem event to implement custom logic for choosing the item template. To do this, create diagram items in the DiagramDataBindingControllerBase.TemplateDiagram and specify their names using the DiagramItem.TemplateName property. Specify the name of the desired template as the event’s CreateItemFromTemplate method parameter and assign the method return value to the event’s Item property. See the example below.
private void DiagramDataBindingController_GenerateItem(object sender, DiagramGenerateItemEventArgs e) {
if (e.DataObject is PentagonDataItem)
e.Item = e.CreateItemFromTemplate("PentagonShape");
else e.Item = e.CreateItemFromTemplate("DefaultItem");
}
Private Sub DiagramDataBindingController_GenerateItem(ByVal sender As Object, ByVal e As DiagramGenerateItemEventArgs)
If TypeOf e.DataObject Is PentagonDataItem Then
e.Item = e.CreateItemFromTemplate("PentagonShape")
Else
e.Item = e.CreateItemFromTemplate("DefaultItem")
End If
End Sub
The following code snippets (auto-collected from DevExpress Examples) contain references to the GenerateItem event.
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.
How-to-bind-diagram-items-Position/CS/DXSample/Form1.cs#L13
ViewModel viewModel = new ViewModel();
diagramDataBindingController1.GenerateItem += DiagramDataBindingController1_GenerateItem;
diagramDataBindingController1.CustomLayoutItems += DiagramDataBindingController1_CustomLayoutItems;
winforms-generate-diagram-with-grouped-items/CS/DiagramDataControllerBehavior/Form1.cs#L23
diagramDataBindingController1.KeySelector = new KeySelector();
diagramDataBindingController1.GenerateItem += DiagramDataBindingController1_GenerateItem;
diagramDataBindingController1.GenerateConnector += DiagramDataBindingController1_GenerateConnector;
How-to-bind-diagram-items-Position/VB/DXSample/Form1.vb#L13
Dim viewModel As ViewModel = New ViewModel()
AddHandler diagramDataBindingController1.GenerateItem, AddressOf DiagramDataBindingController1_GenerateItem
AddHandler diagramDataBindingController1.CustomLayoutItems, AddressOf Me.DiagramDataBindingController1_CustomLayoutItems
winforms-generate-diagram-with-grouped-items/VB/DiagramDataControllerBehavior/Form1.vb#L25
diagramDataBindingController1.KeySelector = New KeySelector()
AddHandler diagramDataBindingController1.GenerateItem, AddressOf DiagramDataBindingController1_GenerateItem
AddHandler diagramDataBindingController1.GenerateConnector, AddressOf DiagramDataBindingController1_GenerateConnector
See Also
DiagramDataBindingControllerBase Class