public void CbSelectionChanged(object sender, SelectionChangedEventArgs e) { if (sender is ListBox LB) { switch (LB.Name) { case "Gestione": _selectedOwners.Clear(); foreach (RegistryOwner item in LB.SelectedItems) { _selectedOwners.Add(item); } break; case "Conto": _selectedAccount.Clear(); foreach (RegistryLocation registryLocation in LB.SelectedItems) { _selectedAccount.Add(registryLocation); } break; case "Anni": SelectedYears.Clear(); foreach (int y in LB.SelectedItems) { SelectedYears.Add(y); } break; case "Valute": if (e.AddedItems.Count > 0) { if (e.AddedItems[0] is RegistryCurrency RC) { SelectedCurrency = RC.IdCurrency; } } break; } } if (sender is ComboBox CB) { if (CB.Items.Count > 0) { TitoloSelezionato = (int)(((RegistryShare)CB.SelectedItem).id_titolo); } } CanClear = true; }
private void chkSelectAll_Click(object sender, RoutedEventArgs e) { if (chkSelectAll.IsChecked.HasValue) { foreach (FilterPredicate cathegory in CompYears) { cathegory.PropertyChanged -= CompYear_PropertyChanged; cathegory.IsSelected = chkSelectAll.IsChecked.Value; cathegory.PropertyChanged += CompYear_PropertyChanged; } CalcEnabled = CompYears.Count > 0 && (chkSelectAll.IsChecked == null || chkSelectAll.IsChecked.Value); SelectedYears.Clear(); } }
private void CompYear_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (CompYears.All(arg => arg.IsSelected)) { // Все элементы выбраны chkSelectAll.IsChecked = true; } else if (CompYears.All(arg => !arg.IsSelected)) { // Все элементы не выбраны chkSelectAll.IsChecked = false; } else { // Что-то выбрано, а что-то нет chkSelectAll.IsChecked = null; } CalcEnabled = CompYears.Count > 0 && (chkSelectAll.IsChecked == null || chkSelectAll.IsChecked.Value); SelectedYears.Clear(); }