重点:
编写Edit特性即可:
public class ParameterEditor : PropertyEditorBase{public override FrameworkElement CreateElement(PropertyItem propertyItem){var pg = new PropertyGrid();return pg;}public override DependencyProperty GetDependencyProperty() => PropertyGrid.SelectedObjectProperty;}
使用:
private Parameter _parameterInfo = new Parameter();[Category("参数"), Browsable(true), ReadOnly(false), DisplayName("XX参数"), Editor(typeof(ParameterEditor),typeof(PropertyEditorBase))]public Parameter ParameterInfo{get => _parameterInfo ;set => Set(ref _parameterInfo , value);}
Parameter 类是自定义类,里面可以定义其他想显示的属性。
Editor(typeof(ParameterEditor),typeof(PropertyEditorBase))(这句代码其实很难找,源码并没有直接使用Editor特性,而是动态反射产生的。)
效果:
可以自己定义新样式来优化界面哦