Under certain conditions it is possible to lose the synchronization between the displayed value of the Integer Up-Down and the underlying View-Model property.
According to my observation the following conditions are required in order to expose the bug:
- A DataGrid with a template column containing an Integer Up-Down
- Two-way binding with the underlying View-Model property
- Set the value of UpdateSoruceTrigger property on the binding to PropertyChanged
- Set the value of ValidatesOnDataErrors property on the binding to True
- Implement the IDataErrorInfo interface in the View-Model and generate data error to the property which is bound to the Integer UpDown
- The DataGrid must have at least two row
Now if I repeatedly and randomly click on the up and down button on the different Integer Up-Down it will eventually lose the synchronization between the displayed and the underlying property value. From this point the setter of the view-model property is no longer called.
I have attached the source code of a simple example application.
On the application just repeatedly click 10-20 times on the up and down buttons of the integer up-downs in a random order and observe that the value of a cell from the first column will eventually get out of sync with the other cells from the same row. Note that I could only reproduce this with the up and down buttons.