Skip to main content
All docs
V25.1
  • DiagramCustomGetEditableItemPropertiesCacheKeyEventArgs.CacheKey Property

    Gets or sets the cache key assigned to the edited diagram item.

    Namespace: DevExpress.Xpf.Diagram

    Assembly: DevExpress.Xpf.Diagram.v25.1.dll

    NuGet Package: DevExpress.Wpf.Diagram

    Declaration

    public object CacheKey { get; set; }

    Property Value

    Type Description
    Object

    An object that is the cache key associated with the edited item.

    Remarks

    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;
        }
    }
    
    //...
    
    void diagramControl1_CustomGetEditableItemProperties(object sender, DiagramCustomGetEditableItemPropertiesEventArgs e) {
        DiagramShapeEx shapeEx = e.Item as DiagramShapeEx;
        if (shapeEx != null) {
            e.Properties.Add(TypeDescriptor.GetProperties(typeof(DiagramShapeEx))["ShowInfo"]);
            if (shapeEx.ShowInfo)
                e.Properties.Add(TypeDescriptor.GetProperties(typeof(DiagramShapeEx))["Info"]);
        }
    }
    
    void diagramControl1_CustomGetEditableItemPropertiesCacheKey(object sender, DiagramCustomGetEditableItemPropertiesCacheKeyEventArgs e) {
        if (e.Item is DiagramShapeEx)
            e.CacheKey = Tuple.Create(typeof(DiagramShapeEx), ((DiagramShapeEx)e.Item).ShowInfo);
    }
    

    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