我约有100个项目绑定到ListBox . 这些项目垂直显示如下:
<ListBox x:Name="lstfolder4" Grid.Row="7" Grid.ColumnSpan="2" Grid.Column="0" SelectionMode="Multiple" >
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Content}" IsChecked="{Binding IsChecked ,Mode=TwoWay}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但是我希望它能横向显示 . 在谷歌搜索后,我尝试了以下代码:
<ListBox x:Name="lstfolder2" Grid.Row="3" Grid.ColumnSpan="2" Grid.Column="0" SelectionMode="Multiple" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True" Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Content}" Width="150" IsChecked="{Binding IsChecked ,Mode=TwoWay}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
现在它显示如下 . 但我想在一列中显示4行 . 谁能帮我这个?
提前致谢 .
1 回答
听起来像
UniformGrid
的完美用例:预期结果:
使用略微修改的UniformGrid(取自this MSDN question)可以实现垂直方向:
设置
Orientation="Vertical"
时的结果: