tags:

views:

547

answers:

2
+1  Q: 

MVVM model design

In MVVM pattern I don't want to think about the view while creating the model. So I use public properties with data stored in ILists and so on. But then my viewmodel isn't informed of changes done to these lists on model side. Should I use ObservableCollections in my model instead? But this seems strange to me.

+2  A: 

Yes, you should use ObservableCollections. I don't know what would be strange about this? All an ObservableCollection does is notify any listeners of changes. That doesn't necessarily have to be a UI.

Your ViewModel shouldn't know anything about the actual View using it, but as it's a ViewModel, it is ok for it to assume something is going to use it, so ObservableCollection is the way to go and also, as far as i know, common practice.

Also, the listeners know exactly which items have been added or removed, so there's no need to update the entire list when changes occur => better performance for updates. That's also what Microsoft says (can't find the article about that right now though)

Botz3000
That's what I wanted to know about it. Thanks
wroks
This could be become very expensive in an application of any size/complexity.
Jim Anderson
+2  A: 

this is also the reason why you see most people implement INotifyPropertyChanged on their data model, because you want the viewmodel to be notified everytime the data model changes.

Stan R.