The DisplayIndex property has a default value of -1 before it is added to the DataGrid.Columns collection. This value is updated when the column is added to the DataGrid.
The DataGrid requires that the DisplayIndex property of each column must be a unique integer from 0 to the Count of Columns -1. Therefore, when the DisplayIndex of one column changes, the change typically causes the DisplayIndex of other columns to also change.
The restrictions on the DisplayIndex value are enforced by a ValidateValueCallback mechanism. If you attempt to set a value that is not valid, a run-time exception is thrown.