ListBox с горизонтальной ориентацией Заполнить пространство [дубликат]

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

0
задан Florian Berger 9 February 2015 в 13:41
поделиться

2 ответа

Вместо использования StackPanel используйте UniformGrid

Предоставляет способ размещения контента в сетке, где все ячейки в сетке имеют одинаковый размер.

и привязать число столбцов к числу элементов в списке и отключить функцию горизонтальной прокрутки.

<ListBox 
   ...
   ItemsSource="{Binding AllItemsList}" 
   ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
   ScrollViewer.VerticalScrollBarVisibility="Disabled" >
   <ListBox.ItemsPanel>
      <ItemsPanelTemplate>
         <UniformGrid Rows="1" Columns="{Binding AllItemsList.Count}"/>
      </ItemsPanelTemplate>
   </ListBox.ItemsPanel>
   <ListBox.ItemContainerStyle>
      <Style TargetType="{x:Type ListBoxItem}">
         <!-- style -->
      </Style>
   </ListBox.ItemContainerStyle>
</ListBox>
2
ответ дан dkozl 19 August 2018 в 01:15
поделиться
  • 1
    Спасибо за Ваш ответ. Он работает, как я хочу. – Florian Berger 9 February 2015 в 14:23

Не используйте StackPanel, вместо этого используйте UniformGrid.

<ItemsPanelTemplate>
    <UniformGrid Rows="1" Columns="{Binding DataContext.Count, RelativeSource={RelativeSource Self}}"/>
</ItemsPanelTemplate>
1
ответ дан dymanoid 19 August 2018 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: