チェックボックスがオフになっているかどうかを確認するために使用するメソッドを作成しようとしています。チェックボックスがオフになっている場合は、メッセージボックスが表示され、ループを実行して、すべての部門を表示しないように設定しますが、表示されません。チェックボックスがオフになっていることをコードで検出するには、最初のifステートメントにヒットするだけで、チェックボックスがオフになっている場合でもそれ以上取得せず、falseに設定されます。
private void displayOnWebsite_Checked(object sender, RoutedEventArgs e)
{
CheckBox displayOnWebsite = sender as CheckBox;
if (displayOnWebsite.IsChecked == false)
{
var departments = model.Name;
var departmentChildren = model.Children;
var messagebox = System.Windows.MessageBox.Show("Do you wish to hide all sub deparments and products.",
"List of Box",
MessageBoxButton.YesNo);
if (!session.IsConnected)
session.Reconnect();
// Used to hide child departments and products.
if (messagebox == MessageBoxResult.Yes)
{
if (departmentChildren != null)
{
int zeroChildren = 0;
if (departmentChildren.Count.Equals(zeroChildren))
{
foreach (Department children in departmentChildren)
children.IsVisibleOnWebsite = false;
}
}
}
else
System.Windows.MessageBox.Show("Nevermind then...");
}
else
System.Windows.MessageBox.Show("nothing happened here");
}
WPF:
<CheckBox IsChecked="{Binding IsVisibleOnWebsite}" Name="displayOnWebsite" Style="{StaticResource Label}" Checked="displayOnWebsite_Checked">Display On Website</CheckBox>