6
我想以编程方式找出属性的默认绑定模式。如何获得依赖项属性的默认绑定模式?
例如,如果我检查它对TextBox.TextProperty
它应该是BindingMode.TwoWay
,但如果它是ItemsControl.ItemsSourceProperty
它应该是BindingMode.OneWay
。
我实现了自定义的MarkupExtension,并已在我的代码,以便远远得到这样的:
public override object ProvideValue(IServiceProvider provider)
{
var service = provider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
if (service != null)
{
var target = service.TargetObject as DependencyObject;
var property = service.TargetProperty as DependencyProperty;
// Not sure what to do with the target and propery here...
}
}
我猜测,这个答案是没有办法的一个DependencyProperty在默认情况下被设置为'BindingMode.OneTime'?它是TwoWay还是不是? – michael
@michael:对于框架特定的属性,是的。 “OneTime”和“OneWayToSource”AFAIK仅用于更好地支持与纯.NET属性的数据绑定。 – Jon