c# - 使用绑定(bind)而不是循环检查/取消选中所有复选框?

标签 c# wpf checkbox mvvm

我有一堆checkboxesgrid .我有两个 buttons ,一个“全选”按钮和一个“取消全选”按钮。名称不言自明,但是当我单击“全选”按钮时,应选中所有复选框。当我单击“取消选中所有”按钮时,所有复选框都应取消选中。

现在,我可以创建一个命令来遍历每个复选框并选中/取消选中按钮,但我想知道是否有更简单的方法使用一些绑定(bind)。例如,我试过这个:

在 xaml 中:

<Grid>
    <CheckBox Grid.Row="1"
              Grid.Column="2"
              IsChecked="{Binding IsChecked}" />
    <CheckBox Grid.Row="2"
              Grid.Column="2"
              IsChecked="{Binding IsChecked}"/>
</Grid>

在我的 View 模型中:
private bool _isChecked;
public bool IsChecked
{
    get { return _isChecked; }
    set { _isChecked = value; OnPropertyChanged("IsChecked"); }
}

上述方法不起作用,因为所有复选框都绑定(bind)到同一个 bool 值。因此,选中/取消选中一个对所有这些都是一样的。但我想做这样的事情。有什么我没有想到的,还是循环遍历它们的主要方法?

最佳答案

ViewModel 方法运行良好

private bool _isChecked;
public bool IsChecked
{
    get { return _isChecked; }
    set { _isChecked = value; OnPropertyChanged("IsChecked"); }
}

关键是您必须定义到 ItemsSource 的绑定(bind)。也(相当于循环)和具有此类 IsChecked 的对象的集合属性(property)。这样每个复选框将独立启用和禁用

关于c# - 使用绑定(bind)而不是循环检查/取消选中所有复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42092410/

相关文章:

c# - 对许多表使用与 Controller 相同的类

c# - 使用 WriteableBitmap 的缓冲区大小不足?

c# - WPF 保留 Tab 控件状态

css - 如何设置我的电子邮件表单的样式?

C# Serilog 在写入文件之前压缩日志消息?

c# - 如果使用 Razor MVC3 在 div 标记内声明

c# - 断言一个回调 Action 是用 nUnit 执行的

c# - 将图标放入 XAML 椭圆

javascript - 无法单击标签以选择具有 Bootstrap 复选框布局的复选框

ios - 在 Swift 中取消选中 UITableview 自定义复选框选项