如何在PropertyGrid控件中为扩展对象启用读/写行为?

时间:2019-08-15 06:51:44

标签: c# wpftoolkit propertygrid typeconverter xceed

当您查看屏幕截图时,这将更有意义。

以下注意“边距”(以绿色突出显示)如何显示“ 0.5,1,0.5,1”,而“子页面选项”(以红色突出显示)如何显示类名称。两者都应用了ExpandableObject属性。两者都有类型转换器,它们可以转换为字符串,也可以具有隐式运算符转换器。但是,我似乎无法让我的班级在右边显示字符串值。

enter image description here

关闭,但没有雪茄!

与“页面选项”(也用红色突出显示)一样,我能做的最接近的事情是覆盖ToString(),但它是只读的,而“边距”和“页面大小”却是只读的-写。另外,这会影响所有调用ToString()的事物。

这是SubPageOptions类的更新版本(仍然无效):

[DisplayName("Sub Page Options"), ExpandableObject]
public struct SubPageOptions {

    public double A { get; set; }
    public double B { get; set; }

    public override string ToString()
        => SubPageOptionsConverter.ToString(this);

    public static implicit operator SubPageOptions(string value)
        => SubPageOptionsConverter.FromString(value);

    public static explicit operator string(SubPageOptions subPageOptions)
        => subPageOptions.ToString();
}

半相关:

如何隐藏“页面大小”中的“是否为空”?类型为Size,我不拥有该类型,所以我不知道如何用[Browsable(false)]装饰该特定属性。

0 个答案:

没有答案