3

这是它的样子:

更改标记扩展Key属性时 - 一切正常。

更改标记扩展构造函数参数时 - 它没有更新。解决方法是使用扩展名(更改Text)更新属性,然后再返回。然后正确评估价值。

这是扩展:

public class MyExtension : MarkupExtension
{
    public string Key { get; set; }

    public MyExtension() { }

    public MyExtension(string key)
    {
        Key = key;
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return Key;
    }
}

关于如何让设计师以与属性相同的方式使用构造函数参数的任何想法?

4

1 回答 1

2

似乎可以纠正这种情况的是使用ConstructorArgumentAttribute这样的:

public class MyExtension : MarkupExtension
{
    [ConstructorArgument("key")]
    public string Key { get; set; }

    public MyExtension() { }

    public MyExtension(string key)
    {
        Key = key;
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return Key;
    }
}
于 2020-04-22T07:33:05.233 回答