【发布时间】:2011-09-20 10:38:50
【问题描述】:
我有一个模拟绑定的自定义 MarkupExtension。它在普通作业中效果很好,但在样式设置器中使用时效果不佳,例如:
<Setter Property="Content" Value="{local:MyExtension}" />
导致 XamlParseException:
A 'Binding' cannot be set on the 'Value' property of type 'Setter'.
A 'Binding' can only be set on a DependencyProperty of a DependencyObject.
这是扩展的实现:
public class MyExtension : MarkupExtension
{
public MyExtension()
{
Value = 123;
}
public object Value
{
get;
set;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new Binding("Value")
{
Source = this,
};
return binding.ProvideValue(serviceProvider);
}
}
有什么问题?!
【问题讨论】: