我希望选择所有CheckBox
,在Checked
时,检查所有其他CheckBoxes
,在Unchecked
时,取消选中其他private void all_CheckedChanged(object sender, RoutedEventArgs e)
{
if (all.IsChecked == true)//this is working
{
issue.IsChecked = true;
summary.IsChecked = true;
type.IsChecked = true;
status.IsChecked = true;
label.IsChecked = true;
components.IsChecked = true;
empty.IsChecked = true;
reporter.IsChecked = true;
requester.IsChecked = true;
team.IsChecked = true;
assignee.IsChecked = true;
}
else if (all.IsChecked == false)//this is not doing anything
{
issue.IsChecked = false;
summary.IsChecked = false;
type.IsChecked = false;
//same for other checkboxes
}
}
。我写了这段代码:
CheckBox
当我调试它时,我看到当我检查before(:all) do
User.any_instance.stub(:external_api_code)
end
时事件发生,但是当我取消选中它时没有任何反应。有人,如果我做错了,请建议我怎么做。
答案 0 :(得分:0)
在WPF' CheckBox
中,您还没有Changed
事件。您已使用Checked
事件,因此您还必须指定Unchecked
并将相同的处理程序附加到这两个事件。所以你的XAML代码应该是这样的:
<CheckBox Name="all" Checked="All_OnChecked" Unchecked="All_OnChecked"></CheckBox>
但我强烈建议您使用MVVM pattern来实现此目的。
答案 1 :(得分:0)
假设您已经拥有XAML文件中的复选框。
请务必将Checked
和Unchecked
个事件添加到XAML文件中的SelectAll
复选框。
然后,填充您希望每个事件执行的操作。在您的情况下,您希望Checked
事件检查所有其他复选框,并Unchecked
事件执行相反的操作。
试试这个......
private void SelectAll_Checked(object sender, RoutedEventArgs e)
{
issue.IsChecked = true;
// Do the rest for all other checkboxes you want to check
}
private void SelectAll_Unchecked(object sender, RoutedEventArgs e)
{
issue.IsChecked = false;
// Do the rest for all other checkboxes you want to uncheck
}
<CheckBox x:Name="SelectAll" Content="Select All" HorizontalAlignment="Left" Margin="107,125,0,0" VerticalAlignment="Top"
Checked="SelectAll_Checked"
Unchecked="SelectAll_Unchecked" />
<!-- Other checkboxes ... -->
此示例请查看my Gist link。