I have a view with an editable (add, modify, remove) list of MyBaseListModel items.
Every individual MyBaseListModel item has itself a member sublist that can be opened with an Expander to show the individual model items. This list can be edited as well.
Two different sublist can be opedend at the same time.

Firs I implemented the ObservableCollections directly in the model:

```
public class MyBaseListModel
{
    ObservableCollection<MyBaseModel> MyBaseList;
    // other members
}

```

And then the VM:

```
public class MyViewModel
{
    public ObservableCollection MyListsfList;

    public MyViewModel(List<MyBaseListModel> l)
    {
        MyListofList = new ObservableCollection(l);
    }
    ....
 }

```

And this works ok.

Then I read that it is not a good custom to implement ObservableCollections directly in the model, and I agree.
So I changed the models to use a List:

```
public class MyBaseListModel
{
    List<MyBaseModel> MyBaseList;
    // other members
}

```

But now I can not edit the sigle sublists because MyListofList[i].MyBaseList is itself a simple List and not an ObservableCollection.

Should I rebuild every single MyBaseListModel item in the view model constructor to replace the List with an ObservableCollection ?

Or should I build in the VM a Collection of ObservableCollection wrappers on the MyBaseList?

Or should I hierarchically compose different ViewModels creating a MyBaseListViewModel that wraps every single MyBaseListModel object using ObservableCollection?

Thank you.