When recently using WPF's DataGrid, a very retarded problem was found, and the ItemsSource of the DataGrid was bound by a property:
And when you assign a value to this set, the first assignment, the column shift occurs.
At first thought is the problem of graphics card, the results today to integrate graphics computer also appear, the specific reasons unknown, the following are several solutions:
1. (preferred, effective) the rowheaderwidth= "0" of the DataGrid, which must be assigned a value of 0, cannot be assigned or assigned other values.
2. (effective) The source of the binding will be assigned at the beginning, that is, at least one row of data.
3. (The effect is different, some places effective some place is invalid) do not have to bind, each obtains the data manually assigns ItemsSource value.
4. (Effective, more cumbersome) to encapsulate each piece of data into an object, the DataGrid is encapsulated into a column template, and each column binds to the object's properties.