FrameworkPropertyMetadata.IsNotDataBindable Property


Gets or sets a value that indicates whether the dependency property supports data binding.

 property bool IsNotDataBindable { bool get(); void set(bool value); };
public bool IsNotDataBindable { get; set; }
member this.IsNotDataBindable : bool with get, set
Public Property IsNotDataBindable As Boolean

Property Value


true if the property does not support data binding; otherwise, false. The default is false.


The metadata has already been applied to a dependency property operation, so that metadata is sealed and properties of the metadata cannot be set.


Note that this metadata property is set to true specifically for properties that should not support data binding, despite being read-write properties. The expectation is that in most cases where a dependency property is declared, data binding is desired, because data binding is one of the key scenarios where a dependency property is useful. Unlike BindsTwoWayByDefault, this does not merely change a default that can later be changed on a specific binding. Setting this property true in the metadata for a dependency property metadata will disable all bindings from applying their values through expressions to that dependency property.

Read-only dependency properties do not support data binding (because they have no setter that can apply changed values), but will still report false for IsNotDataBindable. This is because properties that correspond to a FrameworkPropertyMetadataOptions values will report parity with how the metadata was actually established, rather than always reporting the end result behavior that the naming of the property might imply. To determine whether a given dependency property permits data binding, you should usually check IsDataBindingAllowed instead. IsDataBindingAllowed is a convenience for checking both ReadOnly and IsNotDataBindable as a single operation, yielding the expected result.

Properties on derived classes of PropertyMetadata are typically defined in the object model as read-write. This is so they can be adjusted after initialization of the instance. However, after the metadata is consumed as part of a call to Register, AddOwner, or OverrideMetadata, the property system will seal that metadata instance and properties that convey the specifics of the metadata are now considered immutable. Attempting to set this property after IsSealed is true on this metadata instance will raise an exception.

XAML Text Usage

Members of this class are not typically used in XAML.

Applies to

See also