Je rencontre des problèmes en essayant de générer dynamiquement du contenu dans WPF et après avoir lié des données.DataTemplates de liaison (ou une autre approche)
J'ai le scénario suivant: TabControl - TabItems générés par DataTemplate Dynamiquement - à l'intérieur TabItems, j'ai du contenu dynamique généré par DataTemplate que je veux lier (ListBox).
Le code suivant:
:: TabControl
<TabControl Height="252" HorizontalAlignment="Left" Name="tabControl1" VerticalAlignment="Top" Width="458" Margin="12,12,12,12" ContentTemplate="{StaticResource tabItemContent}"></TabControl>
:: Le modèle pour TabControl générer TabItems
<DataTemplate x:Key="tabItemContent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<ListBox ItemTemplate="{StaticResource listBoxContent}" ItemsSource="{Binding}">
</ListBox>
</Grid>
</DataTemplate>
:: Le modèle pour ListBox l'intérieur de chaque TabItem
<DataTemplate x:Key="listBoxContent">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="22"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="{Binding Path=PluginIcon}" />
<TextBlock Grid.Column="1" Text="{Binding Path=Text}" />
</Grid>
</DataTemplate>
Donc, lorsque je tente de le faire sur le code dans une boucle pour créer les TabItems:
TabItem tabitem = tabControl1.Items[catIndex] as TabItem;
tabitem.DataContext = plugins.ToList();
où « plugins » est un Enumerable
Le ListBox n'est pas limitée. J'ai également essayé de trouver le ListBox dans TabItem pour définir la propriété ItemSource mais pas de succès du tout.
Quelqu'un a une idée sur la façon de faire cela? Merci d'avance.
Merci beaucoup Ray. Ça a marché! –