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