Отображение элементов в элементе управления элементами в двух столбцах (WPF)

StackOverflow https://stackoverflow.com/questions/1450502

  •  11-09-2019
  •  | 
  •  

Вопрос

У меня есть элемент управления элементами, привязанный к коллекции объектов.У объекта есть два свойства (имя, значение), которые я показываю в текстовом блоке и текстовом поле соответственно.Список довольно длинный, и я хотел бы разделить его на две колонки.Итак, мой вопрос: можно ли каким-либо образом заставить элемент управления Items отображать элементы в двух столбцах?

P.S:Коллекция заполняется во время выполнения, и я не знаю, сколько элементов мне придется показать!

Это было полезно?

Решение

Я обычно помещаю элементы в WrapPanel, а затем устанавливаю ширину панели в 2 раза больше ширины элемента.Это дает мне хорошие столбцы с произвольным количеством элементов.Если ширина ваших элементов различается, я помещаю каждый элемент в отдельную сетку или StackPanel фиксированной ширины.

Другие советы

Используйте ListBox и укажите DataTemplate, в который вы поместите TextBlock и TextBox.Используйте привязки, чтобы заполнить их оба.Видеть http://msdn.microsoft.com/en-us/library/ms742521.aspx дополнительные примеры.

<ListBox x:Name="TheListBox">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <TextBlock Text="{Binding Name}" />
                <TextBox Grid.Column="1" Text="{Binding Value }" />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

TheListBox.ItemsSource = CollectionOfObjects;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top