Это проект MVVM. У меня есть ListBox с TabControls внутри его элементов. TabItems различны для каждого TabControl и связаны из ViewModel:
<TabControl ItemsSource="{Binding Tabs}"
</TabControl >
Вкладки:
public ObservableCollection<TabItem> Tabs
{ get { return tabs; }
set {
tabs = value;
value.CollectionChanged += delegate
{
OnPropertyChanged("Tabs");
};
OnPropertyChanged("Tabs"); } }
Вкладки заполняются следующим образом только один раз:
Tabs = new ObservableCollection<TabItem>();
if (details.Image != null || !String.IsNullOrEmpty(details.Summary))
Tabs.Add(new TabItem() { Header = "General Info", Content = new GeneralInfo() { DataContext = ItemDetails } }); ........... 6 different types
Это немного информации о том, что у меня есть. Затем я динамически изменяю DataContext этого TabControls для имитации прокрутки.
Вся информация из ViewModel привязана к элементу управления, но есть проблема с TabControl. Заголовки связаны. но содержание не делает. Все заголовки отменены, а область содержимого TabCntrol пуста.
Я пытался сделать TwoWayBinding для SelectedIndex и SelectedItem, но это не помогает ....
Кажется, SelectedIndex не делает ничего, что может выбрать TabItem.
И SelectedItem не работает, потому что я думаю, что он имеет новую ссылку после каждого изменения контекста данных. Потому что TabControl.ItemsSource повторно связывается и создаются новые TabItems
Может быть, кто-то решил ту же проблему и знает решение?
Спасибо