#124 – One Example of WPF’s Use of Dependency Property Callbacks
November 13, 2010 Leave a comment
There are three callbacks related to dependency properties that a class can respond to:
- PropertyChangedCallback – react to a new value
- ValidateValueCallback – determine whether a value is valid
- CoerceValueCallback – coerce a requested value to some different value
The DataGrid.FrozenColumnCount property is an example of a dependency property in a WPF class that implements all three callbacks.
FrozenColumnCount is used to specified the leftmost n columns in a data grid that should not scroll horizontally. These columns remain fixed while the other columns scroll.
DataGrid uses the dependency property callbacks for this property as follows:
- PropertyChangedCallback – notify constituent controls in the DataGrid of the new value so that they can render properly. (E.g. the control that renders the column headers).
- ValidateValueCallback – validation fails if a negative value is used for FrozenColumnCount
- CoerceValueCallback – if value greater than the number of columns is specified, coerce FrozenColumnCount to be equal to the number of columns.