如题,按HandyControl官网的方法写了一个编辑器,但是他没说明怎么注册进去啊,服了。源码好多地方用 => 这个符号看的好不习惯,看的都想吐了
只需要使用EditorAttribute来对应你的编辑器类型
望采纳
同问。
我们以 PlainTextPropertyEditor
为例,当需要自定义编辑器,我们可以从 PropertyEditorBase
继承,并重写某些方法,这些方法的定义如下表所示:
名称 | 说明 | 备注 |
---|---|---|
CreateElement | 创建具体操作控件 | 必须重写 |
CreateBinding | 为具体操作控件创建数据绑定 | |
GetDependencyProperty | 获取具体操作控件中需要绑定的依赖属性 | 必须重写 |
GetBindingMode | 获取绑定模式 | |
GetUpdateSourceTrigger | 获取更新数据源的触发模式 | |
GetConverter | 获取绑定时需要使用的转换器 |
纯文本编辑器的具体操作控件可以是 TextBox
:
public override FrameworkElement CreateElement(PropertyItem propertyItem) => new System.Windows.Controls.TextBox
{
IsReadOnly = propertyItem.IsReadOnly
};
需要绑定的依赖属性应该是 TextProperty
:
public override DependencyProperty GetDependencyProperty() => System.Windows.Controls.TextBox.TextProperty;
最后整体的代码如下:
public class PlainTextPropertyEditor : PropertyEditorBase
{
public override FrameworkElement CreateElement(PropertyItem propertyItem) => new System.Windows.Controls.TextBox
{
IsReadOnly = propertyItem.IsReadOnly
};
public override DependencyProperty GetDependencyProperty() => System.Windows.Controls.TextBox.TextProperty;
}
以下代码,在PropertyGrid中点击BackBitmap属性可以打开选择图片的窗口,选择图片文件后,属性BackBitmap可以得到图片,但是和PropertyGrid默认的不同,BackBitmap属性没有了那个默认的打开图片的界面小图标,还要怎么设置,可以看到那个BackBitmap属性旁边的小图片
参考:
https://www.sogou.com/link?url=hedJjaC291Nz_UyboyYOgis9SwAhTiJv8TxZB0DBydimZA3OD1kIVw..