J'écris une application Silverlight. Je veux une Listbox qui affiche les lignes verticalement. Ensuite, pour chaque ligne, il doit y avoir une colonne d'en-tête sur la ligne, puis une liste horizontale de panneaux. J'ai l'agencement compris. Mon problème est avec la liaison de données.Comment lier un objet Silverlight ItemsControl à l'intérieur d'un ListBox.ItemTemplate de base de données?
Le contrôle ListBox est lié à une collection. Chaque élément de cette collection sera une ligne dans la liste. Chaque élément de la collection possède également une collection qui sera liée à ItemsControl ItemsSource à l'intérieur de chaque ligne ListBox.
Par exemple
[Rubrique] [x] [y] [z] [tête] [X2] [y2] [z2] [Rubrique] [x3] [Y3] [z3]
Quelle est la syntaxe de liaison que je dois utiliser?
<ListBox Name="listRuleSteps" Height="150" Loaded="ListBox_Loaded" ScrollViewer.VerticalScrollBarVisibility="Auto">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Vertical" Height="50">
<dataInput:Label Content="{Binding StepID}"></dataInput:Label>
</StackPanel>
<StackPanel Grid.Column="1" Orientation="Vertical">
<ItemsControl ItemsSource="{Binding SelectedItem.RuleEngineParts, ElementName=listRuleSteps}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<controlToolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<controlToolkit:WrapPanel Width="100">
<dataInput:Label Content="Text1"></dataInput:Label>
</controlToolkit:WrapPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Je pense que le problème est sur cette ligne. Je ne veux évidemment pas utiliser le SelectedItem mais je ne suis pas sûr de savoir quoi lier l'ItemsSource.
<ItemsControl ItemsSource="{Binding SelectedItem.RuleEngineParts, ElementName=listRuleSteps}" >
Si vous pensez que je me trompe totalement dans la façon dont je fais cela, s'il vous plaît faites le moi savoir. Je suis vraiment nouveau à Silverlight.