重点:
编写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特性,而是动态反射产生的。)
效果:
可以自己定义新样式来优化界面哦