public void UpdateProperties(SimulatorDataSet dataSet) { if (_loadIndex > 0) { return; } lock (_lockObject) { List <DriverTiming> orderedTimings = (DriversOrdering == DisplayModeEnum.Absolute ? _driverNameTimingMap.Values.OrderBy(x => x.Position) : _driverNameTimingMap.Values.OrderBy(x => x.DistanceToPlayer)).ToList(); for (int i = 0; i < orderedTimings.Count; i++) { RebindViewModel(DriversViewModels[i], orderedTimings[i]); if (DriversViewModels[i].IsPlayer) { PlayerViewModel = DriversViewModels[i]; } } DriversViewModels.ForEach(x => x.RefreshProperties()); if (_refreshGapWatch.ElapsedMilliseconds < 500) { return; } UpdateGapsSize(dataSet); _refreshGapWatch.Restart(); } }