Je dirais que c'était bien pensé à l'époque où ça avait été créé, mais qu'aujourd'hui on fait mieux…

(Rien que d'avoir des fichiers xml qui trainent partout pour définir tes DataSource, c'est vraiment moisi, mais bon ^^)
Sinon pour approfondir sur INotifyPropertyChanged, je te propose une classe de base pour implémenter tes objets de Data Binding:
https://github.com/GoldenCrystal/NetUnicodeInfo/blob/master/UnicodeCharacterInspector/BindableObject.cs .
C'est plus ou moins le genre de classe que beaucoup de monde utilise pour ça, car ça t'évite de réinventer la roue dans chacun de tes objets. (Et y'a pas 50 façons de faire ça ^^)
Avec ça, tu peux implémenter tes propriétés de cette façon:
public class Person : BindableObject
{
private string _name;
public string Name
{
get { return _name; }
set { SetValue(ref _name, value); }
}
}
J'imagine que tu as déjà trouvé la page, mais je met quand même un lien vers l'index de la doc sur le Data Binding pour Windows Forms:
https://msdn.microsoft.com/en-us/library/ef2xyb33(v=vs.110).aspx
La plupart des trucs importants y sont expliqués, mais il faut fouiller un peu
