A few weeks ago, I found that after setting the attached property PresentationTraceSources.TraceLevel=High
on a binding, I was not getting the expected verbose output.
You can see an obvious error in the Path
property name.
<TextBlock
Text="{Binding diag:PresentationTraceSources.TraceLevel=High,
Path=XCustomerID}" />
Using the above in WPF 3.5 SP1 would result in many messages being outputted in the Debugger Output Window.
However, in Visual Studio 2010 WPF 4.0, I was only seeing the below single binding error:
System.Windows.Data Error: 40 : BindingExpression path error:
‘XCustomerID’ property not found on ‘object’ "ListCollectionView’
(HashCode=55179487)’. BindingExpression:Path=XCustomerID;
DataItem=’ListCollectionView’ (HashCode=55179487);
target element is ‘TextBlock’ (Name=’CustomerIDTextBlock’);
target property is ‘Text’ (type ‘String’)
The reason the expected messages are not being outputted is because the installation default setting of the WPF Trace Settings is “Error” and not “Warning.” When set to “Error”, no “Warning” messages will be outputted.
To enable the PresentationTraceSources.TraceLevel
messages to be seen, you need to change your Tools, Options, Debugging, Output Window, WPF Trace Settings value to Warning as I’ve done in the below image.
Have a great day writing your applications!
Just a grain of sand on the worlds beaches.
Filed under: CodeProject, Data Binding, Tips, Visual Studio 2010, WPF General