从数据库我收到一个包含多个属性的列表。其中一个属性再次是包含ID信息和图像的附录对象的列表。 我将该List转换为ObservableCollection并将其绑定到WPF ListBox。使用DataTemplate我展示了这个内容。在DataTemplate内部,我现在有一个绑定到内部列表的ItemControl(我的附录没有,一个或多个条目):
<ListBox ItemsSource="{Binding Reports}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<Label Content="Report Date:" FontWeight="Bold"/>
<Label Content="{Binding ReportDate.Date, StringFormat=dd.MM.yyyy , ConverterCulture=de-DE}"/>
<Label Content="Comment:" FontWeight="Bold"/>
<Label Content="{Binding Comment}"/>
</StackPanel>
//Here I would like to have a Button to add a Picture into the Appendix List
<ItemsControl x:Name="SelectedOnlyListBox" ItemsSource="{Binding Appendix}" Visibility="Collapsed">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Picture}"/>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}, AncestorLevel=1}, Path=IsSelected}" Value="True">
<Setter Property="Visibility" Value="Visible" TargetName="SelectedOnlyListBox" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
我的问题是,如何通过绑定到我的代码中获取当前对象。因为我将为一个外部列表(报告)条目提供多个按钮。但Button应该只添加到正确的内部列表(附录)。
其他信息:我正在使用MVVM-Light Toolkit。 非常感谢你。
编辑:我忘了提到第一个List是详细类的许多属性之一,它再次出现在所有详细信息的列表中。因此,我的DataContext已经获得了一个属性“SelectedDetail”。这个我知道的...... 但是,我现在如何将每个SelectedDetail.Report的特定Button与我的SelectedDetail.Reports.Appendix匹配?