WPF загружать и связывать динамически - PullRequest
0 голосов
/ 26 октября 2018

Я разработал замечательный дизайн экрана в нашем приложении WPF MVVM, и теперь у меня много проблем с его реализацией.

Итак, у меня есть экран, на котором я хочу отобразить большой список строк с привязкой к данным. Данные возвращаются асинхронно.
Каждая строка содержит расширитель, поэтому выглядит примерно так:

+ expander 1
+ expander 2
+ expander 3
+ expander 4

Хорошо работает, загружает новые строки, когда пользователь прокручивает список вниз.

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

+ expander 1

    <StackPanel>
        <TextBlock/>
        <TextBlock/>
        <DataGrid/>
    </StackPanel>

+ expander 2
+ expander 3
+ expander 4

То есть расширенные данные должны отображать дополнительный текст и подстроки

Так что подумайте о триггере для IsExpanded, но не знаете, как запускать и возвращать данные для привязки в элементах управления внутри тела экспандера

Есть идеи?

1 Ответ

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

Итак, способ сделать это:

  1. Создание класса, скажем, ExpanderRowModel

  2. Создайте DataTemplate для этого класса, который отображает расширитель, закрытый по умолчанию, со всеми данными внутри при его открытии, привязанными к соответствующему ExpanderRowModel.

  3. Создать свойство в ViewModel, которое возвращает коллекцию ExpanderRowModel

  4. Свяжите эту коллекцию в ListView или другом элементе ItemsControl, который вам нравится.

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