Как представить коллекцию объектов в списке в WPF - PullRequest
4 голосов
/ 21 мая 2011

У меня есть коллекция предметов, которые я хочу подарить.Как я могу это сделать?Список будет делать, но у каждого объекта есть много атрибутов, которые я хочу представить.Я уже привязал список к коллекции, и у меня есть все мои объекты в списке.Мой вопрос касается визуализации списка, и если список является правильным для использования или есть что-то еще, что я должен использовать.

Ответы [ 3 ]

2 голосов
/ 21 мая 2011

Мне кажется, что существующих ответов немного не хватает, обычно никто не будет обрабатывать коллекции или сводить их элементы к строке, в лучшем случае вы будете выполнять некоторые динамические манипуляции, используя CollectionView(например, сортировка, группировка), но обычно вы используете Шаблон данных для отображения отдельных элементов, что позволяет использовать все их свойства.

Далее есть несколько элементов управлениякоторые хорошо работают с коллекциями, во-первых, вам нужно знать, если вы хотите, чтобы выбор, если не ItemsControl является хорошим выбором, в противном случае вы должны использовать ListBox или ListView.

ListViews обычно используются, если у вас есть разные представления для ваших объектов, например, просмотр сведений и просмотр миниатюр.Для этого вы можете использовать ListView.View, в каркасе существует одно существующее представление, GridView, которое предлагает столбцы.Мэттью Феррейра предложил именно то, что вы не должны делать с ListView, так как вы хотите сделать шаблоны зависимыми от текущего представления, фактически код не компилируется, поскольку DataTemplate может иметь только одного дочернего элемента.

Предполагается, что ListViews инкапсулируют логику представления в их представлении, чтобы его можно было изменить по желанию.Если вы решите использовать ItemsControl или ListBox, то настройку ItemTemplate - это то, что вы хотите сделать.Прочитайте обзор шаблонов данных, на который я ссылался, это хорошая отправная точка.

0 голосов
/ 21 мая 2011

Возможно, вы захотите использовать вместо этого элемент управления ListView .ListView имеет поддержку столбцов, если вы планируете показывать несколько свойств вашего объекта.Вы можете использовать свойство ItemTemplate для форматирования отображения вашего объекта.Например:

<ListView ItemsSource="{Binding Path=myObjectCollection}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=Title}"/>
            <CheckBox IsChecked="{Binding Path=ShouldCheck}"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

В этом примере предполагается, что ваш объект имеет свойства Title и ShouldCheck.

0 голосов
/ 21 мая 2011

Ваша коллекция объектов, вероятно, будет рассматриваться как ваша модель.Обычно в WPF добавляется ViewModel , который переводит и отображает данные модели в форму, подходящую для привязки.В зависимости от того, что вы хотите сделать, ваша виртуальная машина может, например, отформатировать каждый объект в строковое представление, а затем представить его как набор строк, которые Listbox может связать и отобразить.

...