В WPF, как я могу сделать данные из одного канала привязки в несколько столбцов? - PullRequest
0 голосов
/ 03 августа 2010

Я пытаюсь отобразить массив в виде сетки чисел с несколькими столбцами и несколькими строками.

Я настроил ListView с несколькими столбцами, привязанными к моему массиву, но элементы повторяются в каждом столбце, так что данные выглядят следующим образом:

-------+--------+-------
First  | First  | First 
Second | Second | Second

, а не:

-------+--------+-------
First  | Second | Third
Fourth | Fifth  | Sixth

Как настроить ListView для отображения данных, как во втором примере?

1 Ответ

1 голос
/ 03 августа 2010

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

Однако выможет иметь ListBox или ListView, который использует WrapPanel в качестве панели элементов.Если вы используете ListView, у вас будут элементы из одного столбца, а панель переноса позаботится о правильном расположении элементов.Однако на самом деле я бы придерживался ListBox, если вам не нужны некоторые расширенные функции ListView.

Чтобы изменить панель элементов, используйте свойство ItemsPanel.Вот пример в XAML:

<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapPanel />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>

Альтернативой является изменение ControlTemplate для ListView и использование свойства IsItemsHost (укажите IsItemsHost="True") впанель, которую вы хотите использовать в качестве панели элементов.

Редактировать : обновлено для использования правильной терминологии.Когда я говорил о контейнере предметов, я имел в виду панель предметов.Вот что происходит при ответе с айфона.

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