Well, hope that you were aware of Silverlight 5 Beta release announcement today and its latest feature, if not make sure to have a look at my earlier post here. In this post, we will discuss about XAML binding debugging, a new feature available in Silverlight 5. Be sure that you read my last line carefully - it's XAML Data Binding debugging, not XAML debugging.
For any data driven application with declarative data binding, within XAML, this brand new feature is significant in many ways. Personally, I remember most of the time I used to skip XAML way of binding as it lacked the debugging feature. Now with Silverlight 5, my previous approach will surely take a back seat and will allow me to consider both ways equally.
Prerequisites
Make sure that you have downloaded the latest version of Silverlight Toolkit SDK. If not, download it from here. Also, make sure that you are running on Visual Studio SP1.
The XAML Data Binding
The example demonstrated here implements basic XAML data binding with DomainDataSource
control, let's look at the XAML binding of one of the controls.

Nothing fancy, simple binding.
The XAML Debugging
Setting Up Breakpoint
As of now, the XAML allows to apply breakpoint on Binding syntax only. Once the break point is applied, it hits the breakpoint whenever push and pull is triggered for that control. The image below shows the breakpoint within XAML.

The XAML editor will not allow you to set breakpoint anywhere else other than Binding syntax.
The Debug Information
Once Breakpoint is set, start the application and wait for the compiler to hit it .

You can find the debug information from Local tab.

The information shows up a BindingState
object holding complete binding context information of the control. As in the above image, the BindingState
value is UpdatingTarget
so this way it shows that the binding is pushing data to control.

Going deeper into the debugging information, it shows the complete picture on the nature of data and binding.

Now another interesting fact, on TwoWay
binding scenario once you change the data, for e.g., the FirstName
control:

The breakpoint again gets a hit as the binding source is getting updated. And the debug information shows the Binding
state as Updating Source status.

and the CurrentItem
Information shows up the editing item detail and its properties.

Conclusion
Hope this post helps you to know the cool new feature of Silverlight 5. Try it
and extract information you need to know right from XAML.
Keep commenting and keep your suggestions flowing. More to follow on Silverlight 5 Beta new features as I explore
.