This topic has not yet been rated - Rate this topic

BindingExpression Class

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Contains information about a single instance of a Binding.

System.Object
  System.Windows.Expression
    System.Windows.Data.BindingExpressionBase
      System.Windows.Data.BindingExpression

Namespace:  System.Windows.Data
Assembly:  PresentationFramework (in PresentationFramework.dll)

public sealed class BindingExpression : BindingExpressionBase, 
	IWeakEventListener

The BindingExpression type exposes the following members.

  Name Description
Public property BindingGroup Gets the BindingGroup that this binding expression belongs to. (Inherited from BindingExpressionBase.)
Public property DataItem Gets the binding source object that this BindingExpression uses.
Public property HasError Gets a value that indicates whether the parent binding has a failed validation rule. (Inherited from BindingExpressionBase.)
Public property HasValidationError Gets a value that indicates whether the parent binding has a failed validation rule. (Inherited from BindingExpressionBase.)
Public property IsDirty Gets or sets a value that indicates whether the target of the binding has a value that has not been written to the source. (Inherited from BindingExpressionBase.)
Public property ParentBinding Returns the Binding object of the current BindingExpression.
Public property ParentBindingBase Gets the BindingBase object from which this BindingExpressionBase object is created. (Inherited from BindingExpressionBase.)
Public property ResolvedSource Gets the binding source object for this BindingExpression.
Public property ResolvedSourcePropertyName Gets the name of the binding source property for this BindingExpression.
Public property Status Gets the status of the binding expression. (Inherited from BindingExpressionBase.)
Public property Target Gets the element that is the binding target object of this binding expression. (Inherited from BindingExpressionBase.)
Public property TargetProperty Gets the binding target property of this binding expression. (Inherited from BindingExpressionBase.)
Public property ValidationError Gets the ValidationError that caused this instance of BindingExpressionBase to be invalid. (Inherited from BindingExpressionBase.)
Public property ValidationErrors Gets a collection of ValidationError objects that caused this instance of BindingExpressionBase to be invalid. (Inherited from BindingExpressionBase.)
Top
  Name Description
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Public method UpdateSource Sends the current binding target value to the binding source property in TwoWay or OneWayToSource bindings. (Overrides BindingExpressionBase.UpdateSource().)
Public method UpdateTarget Forces a data transfer from the binding source property to the binding target property. (Overrides BindingExpressionBase.UpdateTarget().)
Public method ValidateWithoutUpdate Runs any ValidationRule objects on the associated Binding that have the ValidationStep property set to RawProposedValue or ConvertedProposedValue. This method does not update the source. (Inherited from BindingExpressionBase.)
Top
  Name Description
Explicit interface implemetation Private method IWeakEventListener.ReceiveWeakEvent This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code.
Top

The Binding class is the high-level class for the declaration of a binding. The BindingExpression class is the underlying object that maintains the connection between the binding source and the binding target. A Binding contains all the information that can be shared across several BindingExpression objects. A BindingExpression is an instance expression that cannot be shared and that contains all the instance information about the Binding.

For example, consider the following, where myDataObject is an instance of the MyData class, myBinding is the source Binding object, and MyData class is a defined class that contains a string property named MyDataProperty. This example binds the text content of mytext, which is an instance of TextBlock, to MyDataProperty.


//make a new source
  MyData myDataObject = new MyData(DateTime.Now);      
  Binding myBinding = new Binding("MyDataProperty");
  myBinding.Source = myDataObject;
  myText.SetBinding(TextBlock.TextProperty, myBinding);


You can use the same myBinding object to create other bindings. For example, you might use the myBinding object to bind the text content of a check box to MyDataProperty. In that scenario, there will be two instances of BindingExpression that share the myBinding object.

You can obtain a BindingExpression object by using the GetBindingExpression method or the GetBindingExpression method on a data-bound object.

This example shows how to obtain the binding object from a data-bound target property.

You can do the following to get the Binding object:


// textBox3 is an instance of a TextBox
// the TextProperty is the data-bound dependency property
Binding myBinding = BindingOperations.GetBinding(textBox3, TextBox.TextProperty);


Note Note

You must specify the dependency property for the binding you want because it is possible that more than one property of the target object is using data binding.

Alternatively, you can get the BindingExpression and then get the value of the ParentBinding property.

For the complete example see Binding Validation Sample.

Note Note

If your binding is a MultiBinding, use BindingOperations.GetMultiBinding. If it is a PriorityBinding, use BindingOperations.GetPriorityBinding. If you are uncertain whether the target property is bound using a Binding, a MultiBinding, or a PriorityBinding, you can use BindingOperations.GetBindingBase.

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8 Release Preview, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)