>I'd argue for not disabling Ok, regardless of whether the page is dirty or not.
Yes, there is an argument for that. I tend to have dirty-enabled buttons only if it seems obviously helpful in the circumstances, depending upon how dumb the users are expected to be and how fragile the data is. In WinForms for several years I’ve had some reliable utility methods that listen for changes on the nest of controls on a Form and hash the before and after values and tell when things do dirty, and because it’s a hash I even know when things are “clean” again (which arguably might frighten dumb users). I could easily do this in WPF or Silverlight as well, but I never bothered to code it because it’s not in the spirit of binding. Thanks for the tips and code. I’m still investigating this problem and will report if I find anything useful. A Google search for “INotifyPropertyChanged nested” produces lots of discussion on this issue. Greg P.S. A similar “nested object” problem happens with the IEditableObject interface.
