C# 我想在WPF中的scrollviewer控件中创建复选框数组

C# 我想在WPF中的scrollviewer控件中创建复选框数组,c#,wpf,checkbox,scrollviewer,C#,Wpf,Checkbox,Scrollviewer,我有一个字符串列表,我想将其转换为scrollviewer控件中的复选框控件如何?有什么想法吗?列表由课程组成,我想将其设置为复选框,以便学生可以选择其中一些课程带有复选框的列表框控件是否适合您 这是我为复选框列表编写的WPF Xaml代码的一部分: <ListBox Name="CheckBoxDataListBox"> <ListBox.ItemTemplate> <DataTemplate

我有一个字符串列表,我想将其转换为scrollviewer控件中的复选框控件如何?有什么想法吗?列表由课程组成,我想将其设置为复选框,以便学生可以选择其中一些课程

带有复选框的列表框控件是否适合您

这是我为复选框列表编写的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>

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


例如,请参见。

XAML部分:

   <ScrollViewer>
        <ListBox ItemsSource="{Binding .}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <CheckBox Content="{Binding Path=.}" />
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
    </ScrollViewer>

显示列表中的内容当我在列表中添加项目时,它只是添加标签而不是复选框。您可以再次发送文本或讨论其工作原理吗?您是否确保网格列正确?标签可能已放置在复选框控件上?确保它们的列宽足够大。注释标签并查看是否显示复选框。我从项目中复制了代码,其中文本需要显示在复选框的另一侧。我无法在复选框可用的情况下执行此操作(或者无法找到如何执行)。@Vivek-在这种情况下,您只需设置
FlowDirection=“rightoleft”
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new string[] {"course1", "course2"};
    }
}