XmlDataProvider, and boom, your application quickly blurs the line between
the desktop and the web. Unfortunately, the experience quickly degrades to
underwhelming as the user pulls the network plug. The offline experience
needs to be just as compelling as the online experience, and hopefully a
seemless transition.

After some searching, now I can get notified of failures, but I can't seem
to change the binding at runtime (i'm using XmlDataProvider). I think I read
somewhere that you can't swap XmlDataProviders while running, but instead you
would have to use ObjectDataProviders. I'm not that familiar with them, so I
looked a bit more and found PriorityBinding which seemed ideal.
Unfortunately, I can't seem to get it to work with XmlDataProviders (it
always just uses the first in the list).

Is there an easier solution to this problem? ObjectDataProviders the only
way to go here?