Как привязать TabControl к коллекции ViewModel?

В основном у меня в MainViewModel.cs:

ObservableCollection<TabItem> MyTabs { get; private set; }

Однако мне нужно как-то уметь не только создавать вкладки, но и чтобы содержимое вкладок загружалось и связывалось с соответствующими моделями представления, сохраняя при этом MVVM.

В принципе, как я могу заставить usercontrol загружаться в качестве содержимого элемента вкладки и связать этот usercontrol с соответствующей вью-моделью. Часть, которая делает это сложным, ViewModel не должна конструировать фактические элементы представления, правильно? Или может?

В принципе, будет ли это соответствовать MVVM:

UserControl address = new AddressControl();
NotificationObject vm = new AddressViewModel();
address.DataContext = vm;
MyTabs[0] = new TabItem()
{
    Content = address;
}

Я спрашиваю только потому, что я создаю представление (AddressControl) из ViewModel, что для меня звучит как MVVM no-no.

66
задан michael 23 September 2011 в 17:58
поделиться