Как добавить кнопку WPF для добавления содержимого в список внутри ObservableCollection? - PullRequest
0 голосов
/ 11 июня 2018

Из базы данных я получаю список с несколькими свойствами.Одним из этих свойств снова является список объекта приложения, содержащий идентификационную информацию и изображение.Я преобразовал этот список в ObservableCollection и связал его с WPF ListBox.Используя DataTemplate, я показываю этот контент.Внутри DataTemplate теперь у меня есть ItemControl, привязанный к Inner-List (в моем приложении нет ни одной, ни одной, ни нескольких записей):

<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>

Мой вопрос: как мне получитьтекущий объект через привязку в мой код.Потому что у меня будет несколько кнопок для одной записи внешнего списка (отчетов).Но Кнопка должна только добавить в соответствующий Внутренний Список (Приложение).

Дополнительная информация: я использую MVVM-Light Toolkit.Большое спасибо.

Редактировать: Я забыл упомянуть, что первый Список является одним из многих свойств класса Detail, который снова входит в Список всех подробностей.Так что с моим DataContext уже есть свойство "SelectedDetail".Это я знаю ... Но как мне теперь сопоставить конкретную кнопку каждого SelectedDetail.Report с моим SelectedDetail.Reports.Appendix?

...