private void CheckedExecute(SportBarItem barItem) { if (barItem.SportDescriptor == SportSr.ALL_SPORTS && SelectedDescriptors.Count == 1 && SelectedDescriptors.Contains(SportSr.ALL_SPORTS)) { SportBarItem allsports = SportsBarItemsLive.Where(x => x.SportDescriptor == SportSr.ALL_SPORTS).First(); if (allsports != null) { allsports.IsChecked = true; } return; } else if (SelectedDescriptors.Contains(barItem.SportDescriptor)) { SelectedDescriptors.Remove(barItem.SportDescriptor); } else { if (barItem.SportDescriptor == SportSr.ALL_SPORTS) { for (int i = 1; i < SportsBarItemsLive.Count; i++) { SportsBarItemsLive[i].IsChecked = false; } SelectedDescriptors.Clear(); ChangeTracker.LiveSelectedAllSports = true; } else //all sports should be unchecked automatically { if (SelectedDescriptors.Contains(SportSr.ALL_SPORTS)) { SportsBarItemsLive[0].IsChecked = false; SelectedDescriptors.Remove(SportSr.ALL_SPORTS); } ChangeTracker.LiveSelectedAllSports = false; } SelectedDescriptors.Add(barItem.SportDescriptor); } if (SelectedDescriptors.Count == 0) { SportBarItem allsports = SportsBarItemsLive.Where(x => x.SportDescriptor == SportSr.ALL_SPORTS).First(); if (allsports != null) { allsports.IsChecked = true; SelectedDescriptors.Add(allsports.SportDescriptor); } } Refresh(true); ScrollToVertivalOffset(0); }