# IndirectBinding<T> 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 IndirectBinding<T> : Binding, IIndirectBinding<T>
```

Provides an indirect binding to an indeterminate source/destination

**Remarks:** This binding does not directly bind to an object - you must pass the object to get/set the value. The [DirectBinding<T>](https://eto.picoe.ca/api/type/eto.forms.directbinding-1.md) differs in that it binds directly to an object. The IndirectBinding is useful when you want to use the same binding on multiple objects, such as when binding cells in a [Grid](https://eto.picoe.ca/api/type/eto.forms.grid.md). Typically one would use [PropertyBinding<T>](https://eto.picoe.ca/api/type/eto.forms.propertybinding-1.md) or [ColumnBinding<T>](https://eto.picoe.ca/api/type/eto.forms.columnbinding-1.md) which are ways to retrieve either a property value or column/index-based value.

**Type parameters:**

- `T`

**Derived types:** [ColumnBinding<T>](https://eto.picoe.ca/api/type/eto.forms.columnbinding-1.md), [DelegateBinding<T, TValue>](https://eto.picoe.ca/api/type/eto.forms.delegatebinding-2.md), [PropertyBinding<T>](https://eto.picoe.ca/api/type/eto.forms.propertybinding-1.md)

## Methods

- [AddValueChangedHandler](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/addvaluechangedhandler.md): Adds a handler to trap when the value of this binding changes for the specified object
- [AfterDelay](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/afterdelay.md): (2 overloads) Specifies that the binding should only respond to change events after a delay.
- [Cast<TValue>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/cast.md): Casts this binding value to another (compatible) type.
- [CatchException](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/catchexception.md): (2 overloads) Catches any exceptions when setting the value of the binding
- [Child<TNewValue>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/child.md): (2 overloads) Binds to the specified child `property` expression.
- [Convert](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/convert.md): (4 overloads) Converts the binding using the specified `converter` object.
- [EnumToString](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/enumtostring.md): Converts the a binding to an enumeration to/from its string representation
- [GetValue](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/getvalue.md): Gets the value from the specified object using this binding
- [InternalGetValue](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/internalgetvalue.md): Implements the logic to get the value from the specified object
- [InternalSetValue](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/internalsetvalue.md): Implements the logic to set the value to the specified object
- [OfType<TValue>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/oftype.md): Casts this binding value to another (compatible) type, or returns the default if the types do not match.
- [RemoveValueChangedHandler](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/removevaluechangedhandler.md): Removes the handler for the specified reference from [IndirectBinding<T>.AddValueChangedHandler(object, EventHandler<EventArgs>)](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/addvaluechangedhandler.md)
- [SetValue](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/setvalue.md): Sets the specified value to an object using this binding
- [ToBool](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/tobool.md): (3 overloads) Converts this binding to return a nullable boolean binding
- [ToType<TType>](https://eto.picoe.ca/api/type/eto.forms.indirectbinding-1/totype.md): Uses System.Convert.ChangeType to change the value of the binding to the specified type.

## Inherited Members

- From [Binding](https://eto.picoe.ca/api/type/eto.forms.binding.md): [Changed](https://eto.picoe.ca/api/type/eto.forms.binding/changed.md), [Changing](https://eto.picoe.ca/api/type/eto.forms.binding/changing.md), [HandleEvent](https://eto.picoe.ca/api/type/eto.forms.binding/handleevent.md), [OnChanged](https://eto.picoe.ca/api/type/eto.forms.binding/onchanged.md), [OnChanging](https://eto.picoe.ca/api/type/eto.forms.binding/onchanging.md), [RemoveEvent](https://eto.picoe.ca/api/type/eto.forms.binding/removeevent.md), [Unbind](https://eto.picoe.ca/api/type/eto.forms.binding/unbind.md), [Update](https://eto.picoe.ca/api/type/eto.forms.binding/update.md)
