пытается создать w mainwindow, у которого будет tabcontrol, содержащий несколько элементов (каждый отображается только по запросу) ... допустим, у нас есть элемент типа A, элемент типа B и элемент типа C Я хочу (используя шаблон MVVM) иметь наблюдаемый коллекцию объектов, которые представляют мои tabitems и которые связаны с моими пользователями (каждый tabitem является usercontrol) ... Проблема в том, что я не фигурировал как это сделать.Binding TabControl to ObservableCollection with Different Content
я имею класс tabItemViewModelBase:
public class TabItemViewModelBase : ViewModelBase
{
//Fields :
RelayCommand _closeCommand;
//Constructor:
public TabViewModel(string header)
{
this.Header = header;
}
}
в моем контексте данных MainWindow, я наблюдаемую коллекцию этого класса:
//Propriétés
ObservableCollection<TabViewModel> _tabItems;
В моей MainWindow я уже следующий тег для TabControl Товар
<TabControl Padding="0" ItemsSource="{Binding Path=Workspaces}">
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Header}"/>
</DataTemplate>
</TabControl.ItemTemplate>
<TabControl.ContentTemplate>
<DataTemplate>
**<view:ClientView/>**
</DataTemplate>
</TabControl.ContentTemplate>
</TabControl>
, но, как вы можете видеть, все элементы прилагаются к ClientV iew Пользовательский контроль и я использую tabviewitem для создания своих элементов, мне нужно свойство или способ указать форму содержимого для каждого элемента наблюдаемого коллекций ...
(у меня есть класс ClientListingViewModel и класс ClientCreationViewModel), и я не могу использовать оба, потому что я не знаю, как указать представление для каждого из них!
Спасибо!
Малого уведомления - Это лучше положить ваше DataTempalates декларации в app.xaml, или в любом файле ресурсов объединен в App.xaml. Это должно сэкономить вам некоторую память (особенно в случае usercontrols). – Woodman
Проблема заключается в том, что часть viewModel находится в библиотеке anther, и когда я пытаюсь ссылаться на нее в файле XML, я не могу получить доступ ко всем классам ViewModel (делать {x: Тип vm: ClientListingViewModel) – Mohtaa
У меня есть доступ только для одного класса моего видаModel – Mohtaa