# RegisterValueChangedCallback<T>(INotifyValueChanged<T>, EventCallback<ChangeEvent<T>>)

> Registers this callback to receive ChangeEvent<T> when the value is changed.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine.UIElements](/engine/6000.7/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule

```csharp
public static bool RegisterValueChangedCallback<T>(this INotifyValueChanged<T> control, EventCallback<ChangeEvent<T>> callback)
```

### Parameters

**** (\[INotifyValueChanged\<T>]\(/engine/6000.7/script-reference/unityengine/uielements/inotifyvaluechanged1)): **** (\[EventCallback\<ChangeEvent\<T>>]\(/engine/6000.7/script-reference/unityengine/uielements/eventcallback)):&#x20;

### Returns

| Type                                                          | Description |
| ------------------------------------------------------------- | ----------- |
| [bool](https://learn.microsoft.com/dotnet/api/system.boolean) |             |

### Remarks

This calls [CallbackEventHandler.RegisterCallback](/engine/6000.7/script-reference/unityengine/uielements/callbackeventhandler/registercallback.md) on the same control (equivalent to registering a [ChangeEvent\<T>](/engine/6000.7/script-reference/unityengine/uielements/changeevent1.md) callback directly). [ChangeEvent\<T>](/engine/6000.7/script-reference/unityengine/uielements/changeevent1.md) participates in propagation; handlers on an ancestor receive bubbled events from descendant controls of the same event type.

Use [\_target](/engine/6000.7/script-reference/unityengine/uielements/eventbase/target.md) to identify which element originated the change, and [\_currentTarget](/engine/6000.7/script-reference/unityengine/uielements/eventbase/currenttarget.md) for the element on which the callback was registered. Refer to the [Change events](/engine/6000.7/manual/uitoolkits/uielements/uie-events/reference/uie-change-events.md) manual page for guidance on filtering and composite controls.
