2009-06-15 6 views
1

Wenn Sie beispielsweise eine BindingList <Person> haben und Sie diese an ein Steuerelement binden, werden Ihre Änderungen an der zugrunde liegenden Liste nicht automatisch in Ihrem Steuerelement angezeigt, wenn Ihre Person-Klasse INOTfiyPropertyChanging/Changed nicht implementiert. Meine Frage ist, gibt es irgendwelche anderen Anwendungen für diese Schnittstellen, soweit es den Rahmen betrifft? Ich spreche nicht über die Verwendung dieser Schnittstellen, um Ihre eigenen Aktionen basierend auf diesen Ereignissen zu implementieren, ich spreche über das .NET Framework selbst, gibt es noch eine weitere Notwendigkeit, diese Schnittstellen zu implementieren?Anders als für die Datenbindung wird INotifyPropertyChanging/Changed in .NET Framework verwendet?

Antwort

3

Ich kann nicht mit hundertprozentiger Sicherheit sprechen, aber da Sie keine anderen Antworten hatten und mich selbst interessiert haben, habe ich gerade Reflector hochgefahren und überprüft, welche Klassen von INotifyPropertyChanged und der kurzen Antwort abhängig sind scheint zu sein: Nein, es ist nicht wirklich für etwas anderes verwendet.

die Klassen Blick durch einige der Nicht-Datenbindung Referenzen sind:

  • System.Configuration.ApplicationSettingsBase - also, wenn Sie sich entscheiden, Ihre eigenen Anbieter für Anwendungseinstellungen zu implementieren, dann sollte es INPC Funktionalität aus. Es gibt also einen Bereich, in dem es außerhalb von DataBinding verwendet wird, aber eine sehr enge Nische.

  • System.Printing.PrintTicket implementiert auch INPC. Ich habe nicht viel über .NET getan, so dass dies wichtig sein kann, möglicherweise nicht. Ich konnte es wirklich nicht sagen.

Also, die Frage genauer zu beantworten: Wenn Sie nicht Datenbindung Ich bezweifle, dass Sie keinen Nutzen Ihre Klassen implementieren finden INotifyPropertyChanged zu machen, gibt es ein paar Grenzfälle, wo die Schnittstelle verwendet wird außerhalb Ein DataBinding-Kontext, aber wenn Sie in diesen Bereichen arbeiten, werden Sie das schnell selbst herausfinden.

+2

Linq to SQL verwendet sie auch, um Änderungsverfolgung für Datenbankobjekte durchzuführen. (http://msdn.microsoft.com/en-us/library/bb425822.aspx#linqtosql_topic25) – Marchy