我想使用 WPF 在滚动查看器控件中创建一个复选框数组
Posted
技术标签:
【中文标题】我想使用 WPF 在滚动查看器控件中创建一个复选框数组【英文标题】:I want to make an array of checkbox in scrollviewer control using WPF 【发布时间】:2011-07-25 11:43:51 【问题描述】:我有一个字符串列表,我想将其转换为滚动查看器控件中的复选框控件。我怎样才能做到这一点?有任何想法吗?该列表由课程组成,我想将其设置为复选框,以便学生可以选择其中的一些。
【问题讨论】:
向我们展示您在列表中的内容 【参考方案1】:XAML 部分:
<ScrollViewer>
<ListBox ItemsSource="Binding .">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="Binding Path=." />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
代码隐藏部分:
public partial class MainWindow : Window
public MainWindow()
InitializeComponent();
DataContext = new string[] "course1", "course2";
【讨论】:
【参考方案2】:将复选框作为其项目的列表框控件是否适合您?
这是我为复选框列表编写的 WPF Xaml 代码的一部分:
<ListBox Name="CheckBoxDataListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Width="Auto" Height="20" Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<CheckBox HorizontalAlignment="Center" Padding="0" DataContext="Binding" VerticalAlignment="Center" IsChecked="Binding IsSelected"></CheckBox>
</Grid>
<Label Name="SelectLabel" Grid.Column="1" Padding="0" DataContext="Binding" Content="Binding Value"></Label>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
【讨论】:
当我在其中添加项目时,它只是添加标签而不是复选框,您可以再次发短信或讨论它是如何工作的吗? 你确定你的网格列是正确的吗?标签可能已放置在复选框控件上?确保它们有足够的列宽。注释掉标签,看看是否显示了复选框。 我从我的项目中复制了代码,其中文本需要显示在复选框的另一侧。我无法使用可用的复选框(或无法找到方法)。 @Vivek - 在这种情况下你只需要设置FlowDirection="RightToLeft"
【参考方案3】:
您需要将字符串集合绑定为ListBox
的ItemsSource
,并将ListBox.ItemTemplate
设置为包含复选框的DataTemplate
。
例如,请参阅WPF ListBoxItem selection problem。
【讨论】:
以上是关于我想使用 WPF 在滚动查看器控件中创建一个复选框数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Basic 6.0 中创建带有文本框的数组