我得到了一点xaml:
<ListBox Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding Channels}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Item}" IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical">
</WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
现在,列表框将显示每个元素的复选框以及字符串。所有这些项目将显示在一行中,当项目太多时,列表框将可滚动。
我希望列表框能够自动显示更像WinForms CheckedListBox
的项目。它应该自动确定适合它的列数并相应地显示复选框。这是可能的,如果是的话,你能告诉我该怎么做吗?
提前谢谢你!
答案 0 :(得分:-1)
如果您不需要ListBox
,则可以改为使用ItemsControl
:
<ScrollViewer VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Auto">
<ItemsControl Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding Channels}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding Item}" IsChecked="{Binding IsChecked}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical" VerticalAlignment="Stretch" >
</WrapPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>