在c#中单击selectAll时如何检查所有复选框

Posted

技术标签:

【中文标题】在c#中单击selectAll时如何检查所有复选框【英文标题】:How to check all the checkboxes when selectAll is clicked in c# 【发布时间】:2018-01-07 23:14:49 【问题描述】:

在c#中单击Select_All按钮时如何检查列表框中的所有复选框。

这是我的XAML

<StackPanel Width="400" Orientation="Horizontal" Grid.Row="0">
    <AppBarButton x:Name="Btn_SelectAll" Margin="20,0,0,0" Label="Select All" Icon="SelectAll" Click="Btn_SelectAll_Click" FontWeight="Bold" />
    <AppBarButton x:Name="Btn_Delete" Margin="150,0,0,0" Label="Delete All" Icon="Delete" Click="DeleteAll_Click" FontWeight="Bold" />
</StackPanel>
<ListBox  x:Name="listBoxobj" Background="Transparent" Margin="6" Height="auto" BorderThickness="2" MaxHeight="580" Grid.Row="1" SelectionChanged="listBoxobj_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <CheckBox Name="Option1CheckBox"  VerticalAlignment="Center" Margin="5,0,0,0" />
            <TextBlock x:Name="NameTxt" TextWrapping="Wrap" Text="Binding Name" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="22" Foreground="White"/>
            <TextBlock x:Name="Age"   TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="White" FontSize="22" Text="Binding Age" />
        </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

列表框中的数据是从数据库中填充的,所以当用户点击 SelectAll 时,所有的复选框都应该被选中。

【问题讨论】:

假设您遵循 MVVM 模式(您说您正在使用绑定):创建一个命令并设置所有布尔值 = true 【参考方案1】:

在您的 CodeBehind 中创建一个公共/受保护的字段,例如

protected bool SelectAll = false;

Btn_SelectAll_Click事件处理程序中,设置SelectAll = true;

Option1CheckBox IsChecked 属性与 SelectAll 字段绑定,如下所示:

<CheckBox Name="Option1CheckBox"  VerticalAlignment="Center" Margin="5,0,0,0" IsChecked="Binding SelectAll" />

【讨论】:

这不起作用:(。我猜数据没有被绑定。 SelectAll 应该是一个 get/set 字段:protected bool SelectAll get;设置 = false;

以上是关于在c#中单击selectAll时如何检查所有复选框的主要内容,如果未能解决你的问题,请参考以下文章

html标签thead效果javascript运行

选中在wpf中选择全部选中复选框

使用c#一键检查复选框列表中的所有复选框

如何在django中删除多个删除

我们如何在 SwiftUi 的另一个视图中传递布尔状态

如何将 SELECT ALL 值或 SELECTED 复选框值插入 mysql 中的不同列?