重點:
編寫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特性,而是動態反射產生的。)
效果:
可以自己定義新樣式來優化界面哦