J'ai une classe appelée TabViewModel, et il a des propriétés comme le nom, etc ..Comment lier une classe à un TabItem DataContext dans le code-behind
Je dois être en mesure d'ajouter des onglets dynamiquement, et chaque fois qu'un nouvel onglet est ajouté, j'ai besoin de créer une nouvelle instance du TabViewModel et le lier au nouvel onglet.
Voici mon code:
XAML:
<TabControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"/>
</DataTemplate>
</TabControl.ItemTemplate>
code derrière: Lors de l'ajout d'un nouvel onglet ..
_tabItems = new List<TabItem>();
tabItem.DataContext = ViewModel.CreateNewTabViewModel();
_tabItems.Add(tabItem);
TabControl1.ItemsSource = _tabItems;
TabControl1.SelectedIndex = 0;
Ainsi, CreateNewTabViewModel est supposé créer un nouveau TabViewModel et définir le Nom de la propriété à afficher dans l'en-tête de l'onglet, ce qui explique pourquoi le TextBlock est limité à Name.
J'ai également essayé tabItem.SetBinding mais cela n'a pas fonctionné.
Veuillez nous consulter.
Merci!
Je sais, je ne peux voir qu'un onglet, mais l'en-tête est toujours vide au lieu de définir l'en-tête à la propriété Nom –
@DhinneshJeevan - J'ai ajouté à ma réponse. Le code que vous avez posté n'est pas entièrement clair pour moi, alors j'ai fait quelques suppositions. –