We understand your remarks, but please let's look at the following scenario:
1. Let's have a binding between ViewModel.IsHidden and Pane.IsHidden and the pane is visible, so the IsHidden is set to false
2. Close (hide the pane). The value is true
3. Save the layout and we do save the value in xml (IsHidden = true).
4. Restart the application. Now, the ViewModel.IsHidden value doesn't know what is the Pane.IsHidden value because the layout is not loaded yet, value false
is restored. In the loaded layout, the value is true
. The tricky moment here is how to handle such situation in one-way binding - to discard the saved value or to break the binding? We cannot assume that IsHidden property will be used only in two-way bindings, this will be a limitation which we don't want to introduce.
As Vladi already noted, we strongly suggest to save the values in the ViewModels. I hope this information sheds some more light on the given scenario.
Check out Telerik Analytics, the service which allows developers to discover app usage patterns, analyze user data, log exceptions, solve problems and profile application performance at run time. Watch the videos
and start improving your app based on facts, not hunches.