Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

DiagramControl.CustomGetEditableItemPropertiesCacheKey Event

Allows you to update the set of properties displayed by the property grid.

Namespace: DevExpress.Xpf.Diagram

Assembly: DevExpress.Xpf.Diagram.v24.2.dll

NuGet Package: DevExpress.Wpf.Diagram

#Declaration

public event EventHandler<DiagramCustomGetEditableItemPropertiesCacheKeyEventArgs> CustomGetEditableItemPropertiesCacheKey

#Event Data

The CustomGetEditableItemPropertiesCacheKey event's data class is DiagramCustomGetEditableItemPropertiesCacheKeyEventArgs. The following properties provide information specific to this event:

Property Description
CacheKey Gets or sets the cache key assigned to the edited diagram item.
Item Returns the edited diagram item.

#Remarks

The DiagramControl caches a set of editable properties for each diagram item type. These properties are displayed by the property grid when an end-user selects an item.

If you want to display different sets of a diagram item’s properties depending on certain condition, you can handle the CustomGetEditableItemPropertiesCacheKey event.

Note

Do not handle this event if your items always display the same set of properties.

The following example demonstrates a custom shape that derives from the DiagramShape. When the ShowInfo property value is set to true, the property grid displays the Info property.

//DiagramShapeEx.cs
public class DiagramShapeEx : DiagramShape {
    //the NotifyParentProperty attribute is used to notify the DiagramControl
    //that the ShowInfo value has changed.
    [NotifyParentProperty(true)]
    public bool ShowInfo {
        get;
        set;
    }
    public string Info {
        get;
        set;
    }
}

Tip

If you have a reasonable number of shapes on the canvas, you can set the e.CacheKey to null without affecting the performance.

See Also