Hm, the only problem I have right now, is the memory profile.
I think your solution deserializes all stored data into the main memory. That is good for small amounts of data.
I fear that my app will produce more and more data over time and then it will be
1) very slow during initial startup (all data will be deserialized into the ObservableCollection objects).
2) possible crash because of too much memory used.
3) Saving data would take a longer and longer time.
What I wish would be a Linq enabled database where only the selected items are actually loaded from the isolated storage.
Some support for decoupled loading in ListViews will be appreciated then too (as the performance might get lower then)...
Currently I am thinking about switching to another db. This NinjaDB seems to be able to use Linq as well. But so far I have not done more than checking out the demo. They have implemented a huge amount of support code to get the save process more efficient
(no need to completely serialize everything). But porting my app over would take some time. But I have to do it fast as its already in Marketplace (probably noone is using it) - and data migration is an issue.
Hope that gives you some inspiration :)