ItemsControl of ListViews, связывает SelectedItem из каждого ListView, где количество ListViews является динамическим, MVVM - PullRequest
0 голосов
/ 23 октября 2018

У меня есть ItemsControl с ListViews внутри, чтобы создать пользовательскую сетку, похожую на макет. Вот примерно так выглядит код, который делает это, имена меняются, а ненужный стиль удаляется.

Каждый ListView создается экземпляромItemsSubList и, следовательно, не существует заданного количества списков или свойств, которые нужно создать.

Кто-нибудь знает, как я мог бы каким-либо образом связать свойство SelectedItem каждого списка в желаемый список.

<ItemsControl ItemsSource="{Binding Items}">
  <ItemsControl.ItemsPanel>
     <ItemsPanelTemplate>
        <StackPanel Orientation="Horizontal"/>
     </ItemsPanelTemplate>
  </ItemsControl.ItemsPanel>

  <ItemsControl.ItemTemplate>
     <DataTemplate>
         <ListView ItemsSource="{Binding ItemsSubList}" 
                              DisplayMemberPath="ItemVersion" 
                              SelectionMode="Single"
                              Width="100"
                              VerticalAlignment="Top"
                              Background="#282828"
                              BorderBrush="#282828">
         </ListView>
     </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>

1 Ответ

0 голосов
/ 23 октября 2018

Я бы решил это в вашей модели.Кажется, что ваш текст данных представляет собой класс со свойством Items типа ObservableCollection<MyItem>, а ваш класс MyItem затем как свойство ItemsSubList типа ObservableCollection<MySubItem>.Это правильно?

Текст данных вашего ListView является экземпляром типа MyItem.Вы можете добавить свойство SelectedSubItem в свой класс MyItem и связать его с помощью двусторонней привязки к вашему списку. Выбранный элемент.

А затем в вашем основном классе, который содержит вашу модель и где свойствоItems живет, я бы добавил свойство public List<MySubItem> SelectedSubItems => Items.Select(i => i.SelectedSubItem).ToList();, свойство, которое динамически выбирает все выбранные подпункты из всех ваших элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...