Tip veloce che può fare risparmiare parecchio tempo.
Quando si effettua il binding in WPF è molto facile commettere errori di battitura (sempre che non si usi il designer o Blend) oppure è possibile modificare o eliminare la property nel ViewModel senza aggiornare lo XAML.
Ad esempio se credo un binding sbagliando la sintassi della property Description nel Path:
<GridViewColumn DisplayMemberBinding="{Binding Path=Descrition}" Header="Last name" Width="140" />
a runtime non viene visualizzato nulla ma soprattutto non viene sollevata nessuna eccezione.
Il metodo più veloce per visualizzare gli errori di binding è quello di eseguire l’applicazione in debug da Visual Studio: in questo modo tutti gli errori di binding vengono loggati nella finestra di Output.
Nell’esempio mi ritrovo un errore di questo tipo:
System.Windows.Data Error: 40 : BindingExpression path error: ‘Descrition’ property not found on ‘object’ ”Product’ (HashCode=55303339)’. BindingExpression:Path=Descrition; DataItem=’Product’ (HashCode=55303339); target element is ‘TextBlock’ (Name=”); target property is ‘Text’ (type ‘String’)
A questo punto potrebbe essere utile loggare questi errori sotto forma di eccezione anche a runtime (magari con Log4net).
In questo post viene spiegato come creare un listener sui binding di WPF per generare un’eccezione: Making WPF Binding Errors Exceptions