Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>This is (in my lonely opinion) one of the biggest limitations of the data binding model in Silverlight and WPF, namely, that there's no type safety anywhere in the process. As soon as you type {Binding...} you're working without a net. MS managed to take a wonderfully glorious strongly-typed language like C# and tied it to a completely non-type-safe data binding model, thereby all but wrecking a decade of Anders Hejlsberg's wonderful work on C#. You expect this sort of "looseness" when working with dynamic languages, but not when you're dealing with C#.</p> <p>This limitation really becomes problematic when you're changing the ViewModel underlying your Views, because of course, there's no easy way to test your data bindings. Normally, when you've got code that you can't test, you can at least rely on the compiler to tell you if what you're asking the code to do doesn't make any sense. But because MS made data bindings non-type-safe, not only can you not test your changes, you can't even rely on the compiler to tell you when they don't make any sense. And, to add insult to injury, you can't even rely on running your application and seeing if you get any error messages: because bindings always fail silently. The best you can do is turn up the logging level and walk through tons of debug error messages. Uggh. Nasty as hell.</p> <p>See my blog posting <a href="http://blog.wouldbetheologian.com/2009/07/why-wpf-databinding-is-awful-technology.html" rel="nofollow noreferrer">here</a>, another question I asked <a href="https://stackoverflow.com/questions/1197054/strongly-typed-databinding-in-wpf-silverlight-xaml">here</a>, and my answer <a href="https://stackoverflow.com/questions/3154171/wpf-silverlight-programmers-is-mvvm-overkill/3154299#3154299">here</a> for more thoughts on the underlying issue.</p> <p>I should note that I seem to be virtually alone in my opinion about this one, so perhaps there's something huge that I'm just missing. But I personally think you've hit the nail right on the head.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload