gpt4 book ai didi

c# - 多列列表框

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:51 24 4
gpt4 key购买 nike

我想在列表框中有多个列,其中包含我通过从数据库中获取值动态创建的复选框。代码是这样的:

<StackPanel Width="250" Height="80">
<ListBox Name="listBoxZone" ItemsSource="{Binding TheList}" Height="115" Background="Azure">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="CheckBoxZone" Content="{Binding TheText}" Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked" Margin="0,5,0,0"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

但是这里的复选框水平一个接一个地出现...我想在 5 个复选框之后更改列...我在这里使用了换行面板,但它将所有复选框和所有复选框垂直排成一行。

那现在怎么办?

最佳答案

你应该试试这个:

<ListBox Name="listBoxZone" ItemsSource="{Binding TheList}" Height="115"    Background="Azure">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType=ScrollContentPresenter}}"
ItemWidth="{Binding (ListBox.View).ItemWidth, RelativeSource={RelativeSource AncestorType=ListBox}}"
MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
ItemHeight="{Binding (ListBox.View).ItemHeight, RelativeSource={RelativeSource AncestorType=ListBox}}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="CheckBoxZone" Content="{Binding TheText}" Tag="{Binding TheValue}" Checked="CheckBoxZone_Checked" Margin="0,5,0,0"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

此代码将在到达控件的宽度边界而不是项目计数达到 5 时换行。如果这不符合您的要求,那么我建议您使用 Grid 而不是 ListBox。

关于c# - 多列列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com