我想使用 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】:

您需要将字符串集合绑定为ListBoxItemsSource,并将ListBox.ItemTemplate 设置为包含复选框的DataTemplate

例如,请参阅WPF ListBoxItem selection problem。

【讨论】:

以上是关于我想使用 WPF 在滚动查看器控件中创建一个复选框数组的主要内容,如果未能解决你的问题,请参考以下文章

平移和缩放图像

如何在其可点击区域内居中 WPF 复选框?

WinForm中调用WPF控件

如何在 Visual Basic 6.0 中创建带有文本框的数组

如何使用 Apache POI (Java) 在 Excel 中创建表单控件(单选框、复选框、按钮等)?

嵌套滚动区域