这是它的样子:
当更改标记扩展 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;
}
}
关于如何使设计器以与处理属性相同的方式处理构造函数参数的任何想法?
最佳答案
似乎要补救这种情况的方法是像这样使用 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;
}
}
关于c# - 标记扩展 : changing constructor argument is not evaluated in design time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34651220/