Synchronized Binding

So, now we've looked at how data binding works for a single control. But you hardly ever use a single control in isolation, and under most circumstances, if you have multiple controls bound to the same data source, you want them to be synchronized—they'll probably point to different columns, but you want them to point to the same row.

But because the .NET Framework data binding architecture uses a pull model, the data source itself doesn't know what controls are bound to it. Further, the data source doesn't have any concept of a “current” row—ADO .NET data providers don't support cursors. Both of those functions are performed by another object, a descendant of the BindingManagerBase (of which, more in a moment).