Несколько элементов управления в элементе списка - PullRequest
0 голосов
/ 10 ноября 2011

Мне нужно иметь как можно больше элементов управления, чтобы поместиться в «Один ряд списка», насколько это возможно. Цель не в том, чтобы тратить пространство на форму. Поле списка будет иметь высоту формы 70% (лента - 30%) и ширину 100%.

Я использую пользовательский ItemTempleSelector, поэтому элементы управления, которые будут в списке, будут представлять собой комбинацию из:

Метка + текстовое поле, Метка + комбинированный список, Метка + дата / время выбора

Конечно, они появляются один под другим, но мне нужно, чтобы они появлялись слева направо. Большое спасибо.

Ответы [ 2 ]

4 голосов
/ 10 ноября 2011

Что вам нужно сделать, это изменить ListBox ItemsPanel, чтобы он содержал WrapPanel. Таким образом, ваши предметы будут отображаться слева направо, а затем переходить к следующей строке (я думаю, это то, что вы хотите). Вам также необходимо отключить горизонтальную полосу прокрутки в списке.

    <ListBox ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel />
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
        ...your other stuff like the ItemTemplate
    </ListBox>

Другая вещь, о которой стоит подумать, это то, что вы используете ListBox, потому что хотите, чтобы они могли выбирать каждый элемент? Если нет, то ItemsControl будет заменой один на один, которая будет легче и не поддерживает выбор элемента.

0 голосов
/ 10 ноября 2011

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

...