Wenn wir an eine heterogene Sammlung von Objekten binden, haben nicht alle Objekte die gleichen Eigenschaften. Im Ausgabefenster erhalten wir eine Nachricht wie:
System.Windows.Data Fehler: 39: BindingExpression-Pfadfehler: Die Eigenschaft 'RoundingFactor' wurde nicht gefunden 'Objekt' '' MultiLineTextMarkingScheme ' (HashCode = 7262386) '. BindingExpression: Pfad = Rundungsfaktor; ..........
Dies scheint keine Ausnahme zu sein, aber wir sind besorgt, dass es sich auf die Leistung auswirkt.
Sollten wir besorgt sein und ein Ansichtsmodell erstellen, das alle Eigenschaften aufweist, an die wir binden möchten (und die Eigenschaften, die nicht im zugrunde liegenden Element vorhanden sind, null zurückgeben) oder können wir es einfach lassen.
Diese Situation tritt häufig in einem Grid-Szenario auf, in dem möglicherweise viele dieser Bindungsfehler auftreten.
Sie sehen diese Ausgabe nur, weil Sie in Visual Studio ausgeführt werden. Normalerweise gehen diese Trace-Anweisungen nirgendwohin, weil es keinen Trace-Listener gibt. In jedem Fall sind die Auswirkungen auf die Leistung vernachlässigbar.
Ausnahmen wären andererseits eine sehr kostspielige Methode, um verbindliche Fehler zu melden, insbesondere weil - wie Sie bemerken - häufig Bindungen vorhanden sind, die gegen einige Objekte, aber nicht gegen andere arbeiten.
Ich habe das selbst nicht getestet, aber ein Blogpost vom Visual Studio-Team sagt, dass Bindungsfehler tatsächlich die Leistung beeinträchtigen:
WPF versucht mehrere verschiedene Wege, um Pfadfehler zu beheben, einschließlich der Suche nach angehängten Eigenschaften, und das ist ziemlich teuer.
Tags und Links wpf data-binding performance exception