Ich verwendete IDataErrorInfo
in meinen MVVM/WPF-Anwendungen. Jetzt, nachdem INotifyDataErrorInfo
in .Net 4.5 verfügbar ist, ist es besser, IDataErrorInfo
zu ersetzen oder den alten Weg mit IDataErrorInfo
fortzusetzen?.Net 4.5: Sollte ich IDataErrorInfo oder INotifyDataErrorInfo verwenden?
Antwort
Es gibt eine Reihe von Verbesserungen in INotifyDataErrorInfo
(insbesondere, es ist die Unterstützung für mehrere, dynamisch ändernde Fehlermeldungen pro Objekt/Eigenschaft), die es der vorherigen Schnittstelle überlegen. Aber der größte Unterschied ist, dass es asynchron ist. Sie müssen nun das Ereignis ErrorsChanged
auslösen, wenn sich der Fehlerzustand ändert.
Wenn Sie eine Anwendung in .NET 4.5 implementieren, die auf Geräte ausgerichtet ist, auf denen Windows 8 ausgeführt wird, sollten Sie die Verwendung der neuen Schnittstelle in Betracht ziehen. Asynchrones Programmieren ist das "beabsichtigte Modell" für solche Anwendungen, insbesondere wenn Sie RT-Geräte einschließen. Es ist nicht viel komplexer zu implementieren INotifyDataErrorInfo
über IDataErrorInfo
, so dass es nicht wirklich einen Nachteil gibt.
Das bedeutet nicht, dass Sie alle vorhandenen Anwendungen nachrüsten sollten; wieder hängt es von Ihrem Ziel ab. Wenn Sie versuchen, eine vorhandene Anwendung als RT-kompatibel zu aktualisieren, sollten Sie den neuen Fehlerbehandlungscode möglicherweise austauschen. Ansonsten muss nicht geändert werden, was funktioniert.
- 1. Wie Implementieren von INotifyDataErrorInfo in WPF 4.5?
- 2. Verwenden eines Proxy mit .NET 4.5 HttpClient
- 3. Kann ich entwickeln .net 4.5 app VS2010
- 4. Wie kann ich .NET Framework 4.5 in Unity 5 verwenden
- 5. Welche .net Diagrammbibliothek sollte ich verwenden?
- 6. enthält .NET 4.5. NET 4.0
- 7. Kraft INotifyDataErrorInfo Validierung
- 8. ServiceHost.Behaviours .NET 4.5
- 9. IIS6 und .Net 4.5?
- 10. Sollte ich hier wakeFromNib oder initWithCoder verwenden?
- 11. Sollte ich Typklassen verwenden oder nicht?
- 12. Wann sollte ich Subdomains verwenden oder vermeiden?
- 13. Sollte ich Angular.copy() oder _.clone() verwenden?
- 14. Sollte ich DirectInput oder Windows-Nachrichtenschleife verwenden?
- 15. Wann sollte ich @JoinColumn oder @JoinTable verwenden?
- 16. Sollte ich Klassenvererbung verwenden oder nicht?
- 17. PHP oder Javascript, die ich verwenden sollte
- 18. Sollte ich Threads oder mehrere Prozesse verwenden?
- 19. Sollte ich Pylons oder Pyramid verwenden?
- 20. Sollte ich Int oder UInt16 verwenden?
- 21. Sollte ich Meteor.startup() oder $ (function() {}) verwenden
- 22. Sollte ich Methoden oder konstante Flags verwenden?
- 23. Sollte ich SqlGeometry oder SqlGeography verwenden?
- 24. Sollte ich Pickle oder cPickle verwenden?
- 25. Sollte ich tsd oder typings verwenden?
- 26. Sollte ich rand() oder rand_s() verwenden?
- 27. Sollte ich IB oder Unterklasse verwenden UIView
- 28. therubyracer oder nodejs, welche sollte ich verwenden?
- 29. Sollte ich string.isEmpty() oder "" .equals (string) verwenden?
- 30. sollte ich "Set" oder "Liste" verwenden