This chapter has provided an in-depth examination of the inner workings of data binding. It has also considered the best practices you need to use for data binding without crippling your code and tying it too closely to the specific data source details. In Chapter 11 you revisit this issue with a twist, and examine a case where tight coupling is exactly what you want!
The chapter also considered some useful examples about how to sidestep data binding and create custom controls that are data-aware. These smart controls are invaluable in cleaning up tangled messes of code, and provide an excellent solution when you want to use controls that don't support data binding well, like the ListView and TreeView.