# Binding class

Namespace: [Eto.Forms](https://eto.picoe.ca/api/namespace/eto.forms.md) · Assembly: [Eto](https://eto.picoe.ca/api/assembly/eto.md)

```cs
public abstract class Binding : IBinding
```

Base class for binding between a value and another

**Remarks:** This is the base of any type of binding. Some bindings may only be used to get/set a single value (e.g. [IndirectBinding<T>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1.md)), whereas the [DualBinding<T>](https://eto.picoe.ca/api/type/eto.forms.dualbinding-1.md) can link two objects' values together

**Derived types:** [DirectBinding<T>](https://eto.picoe.ca/api/type/eto.forms.directbinding-1.md), [DualBinding<T>](https://eto.picoe.ca/api/type/eto.forms.dualbinding-1.md), [IndirectBinding<T>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1.md)

## Methods

- [AddPropertyEvent](https://eto.picoe.ca/api/type/eto.forms.binding/addpropertyevent.md): (2 overloads, static) Adds an event handler for a specified `propertyName` of a [INotifyPropertyChanged](https://learn.microsoft.com/dotnet/api/system.componentmodel.inotifypropertychanged) object.
- [Delegate<TValue>](https://eto.picoe.ca/api/type/eto.forms.binding/delegate.md): (2 overloads, static) Creates a new direct delegate binding.
- [ExecuteCommand](https://eto.picoe.ca/api/type/eto.forms.binding/executecommand.md): (2 overloads, static) Executes a command retrieved using the specified `commandBinding` from the `dataContext`.
- [HandleEvent](https://eto.picoe.ca/api/type/eto.forms.binding/handleevent.md): Called to handle an event for this binding
- [OnChanged](https://eto.picoe.ca/api/type/eto.forms.binding/onchanged.md): Handles the [Binding.Changed](https://eto.picoe.ca/api/type/eto.forms.binding/changed.md) event
- [OnChanging](https://eto.picoe.ca/api/type/eto.forms.binding/onchanging.md): Handles the [Binding.Changing](https://eto.picoe.ca/api/type/eto.forms.binding/changing.md) event
- [Property<T, TValue>](https://eto.picoe.ca/api/type/eto.forms.binding/property.md): (4 overloads, static) Creates a new direct property binding to the specified `model` object.
- [RemoveEvent](https://eto.picoe.ca/api/type/eto.forms.binding/removeevent.md): Called to remove an event for this binding
- [RemovePropertyEvent](https://eto.picoe.ca/api/type/eto.forms.binding/removepropertyevent.md): (3 overloads, static) Removes an event handler previously attached with the AddPropertyEvent method.
- [Unbind](https://eto.picoe.ca/api/type/eto.forms.binding/unbind.md): Unbind this from the target object(s)
- [Update](https://eto.picoe.ca/api/type/eto.forms.binding/update.md): Updates the bound target object's value

## Events

- [Changed](https://eto.picoe.ca/api/type/eto.forms.binding/changed.md): Event to handle after the value has been set using this binding
- [Changing](https://eto.picoe.ca/api/type/eto.forms.binding/changing.md): Event to handle when the value is being set using this binding
