Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вместо использования StackPanel
используйте UniformGrid
Предоставляет способ размещения контента в сетке, где все ячейки в сетке имеют одинаковый размер.
blockquote>и привязать число столбцов к числу элементов в списке и отключить функцию горизонтальной прокрутки.
<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>
Не используйте StackPanel
, вместо этого используйте UniformGrid
.
<ItemsPanelTemplate>
<UniformGrid Rows="1" Columns="{Binding DataContext.Count, RelativeSource={RelativeSource Self}}"/>
</ItemsPanelTemplate>