В чем разница между панелью стека с таблицами данных или списком с элементами списка - PullRequest
0 голосов
/ 01 марта 2019

Я создаю программу WPF, которая использует данные API остальных.Я хочу реализовать ленивую загрузку и бесконечную прокрутку данных и программно создавать и добавлять либо пользовательские шаблоны данных, либо списочные элементы, очень похожие на этот дизайн enter image description here

Я просто не понимаю, какие именноПодход и какие выгоды / затраты каждый из них дает

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

A StackPanel - это Panel, который размещает дочерние элементы в одну строку, которая может быть ориентирована либо горизонтально, либо вертикально.

A ListView - это ItemsControl, который можно привязать кIEnumerable объектов и используется для представления коллекции элементов.

Вам нужно создать ItemsControl с ItemTemplate, который соответствует прокручиваемому элементу в списке.Здесь есть базовый пример здесь , и вы найдете гораздо больше примеров в Интернете.

0 голосов
/ 01 марта 2019

Простой выбор:

Каждый использует MVVM, поэтому используйте MVVM.

Шаблонирование данных является основой wpf, и создание пользовательского интерфейса в коде не рекомендуется - поэтому используйте шаблонизацию данных.

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

Огромный плюс этого - у вас есть разметка «прямо здесь».Поэтому, когда все становится грушевидным, вы можете вставить экспериментальное решение и увидеть, как ошибки загораются в xaml или посмотреть, что видит пользователь.

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

Я не уверен, как вы ожидаете, что это будет прокручиваться точно, но я бы использовал список, некоторые шаблоны данных, связанные с типом для представления.Предполагая, что элементы могут иметь разные виды - вы, кажется, просто имеете эту «позолоченную» кнопку или метку в качестве опции.

Загрузка данных в модели просмотра по одному на строку.

.Добавить вObservablecollection, являющаяся открытым свойством в модели представления.

Свяжите это с источником элементов списка.

Затем они шаблонизируются в пользовательском интерфейсе.

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

...