/// <summary> /// (Re)sets DataContexts of grouped sections on the window. /// </summary> private void SetDataContexts() { journeysList = journeys.ByVehicle(vehicle); fuelPurchasesList = fuelPurchases.ByVehicle(vehicle); servicesList = services.ByVehicle(vehicle); // Consequence of not having MVVM: have to null DataContext and assign the expected DataContext for changes to mitigate if (journeysList.Count > 0) { gbJourney.DataContext = null; gbJourney.DataContext = journeysList[0]; } if (fuelPurchasesList.Count > 0) { gbFuelPurchase.DataContext = null; gbFuelPurchase.DataContext = fuelPurchasesList[0]; } if (servicesList.Count > 0) { gbRecentService.DataContext = null; gbRecentService.DataContext = servicesList[0]; } }
/// <summary> /// Refreshes all information shown on the window. /// </summary> public void Refresh() { string selectedVehicleOdometer = "-"; if (lvVehicles.SelectedItem is Vehicle) { // Set selected vehicle in the list and propagate context to groupboxes. selectedVehicle = (Vehicle)lvVehicles.SelectedItem; CollectionViewSource.GetDefaultView(lvVehicles.ItemsSource).Refresh(); ObservableCollection <Journey> journeys = Journeys.ByVehicle(selectedVehicle); ObservableCollection <Service> services = Services.ByVehicle(selectedVehicle); ObservableCollection <FuelPurchase> fuelPurchases = FuelPurchases.ByVehicle(selectedVehicle); gbVehicle.DataContext = selectedVehicle; // Consequence of not having MVVM: have to null DataContext and assign the expected DataContext for changes to mitigate gbJourney.DataContext = null; gbJourney.DataContext = journeys.Count > 0 ? journeys[0] : null; gbRecentService.DataContext = null; gbRecentService.DataContext = services.Count > 0 ? services[0] : null; gbFuelPurchase.DataContext = null; gbFuelPurchase.DataContext = fuelPurchases.Count > 0 ? fuelPurchases[0] : null; selectedVehicleOdometer = Vehicles.TotalDistance(journeys).ToString(); SetVehiclePropertyButtons(); } else { gbJourney.DataContext = null; SetVehiclePropertyButtons(false); } tbOdometer.Text = selectedVehicleOdometer; }
/// <summary> /// Refreshes list by re-grouping items that belong to vehicle and refresh list view. /// </summary> private void Refresh() { filteredJourneys = journeys.ByVehicle(vehicle); lvJourneys.ItemsSource = filteredJourneys; CollectionViewSource.GetDefaultView(lvJourneys.ItemsSource).Refresh(); }