public void OnPropertyChanged(PropertyChangedEventArgs a) { if (!AutoJoinActive) { return; } if (Entry.IsAutoJoinReady(AutoJoinAnyCar)) { Logging.Here(); AutoJoinActive = false; if (AutoJoinAnyCar && !Entry.FixedCar) { var av = Entry.Cars?.FirstOrDefault(x => x.IsAvailable); if (av != null) { Logging.Write($"Available car: {av.DisplayName} (IsAvailable={Entry.IsAvailable})"); Entry.SetSelectedCarEntry(av); Entry.AvailableUpdate(); Logging.Write($"IsAvailable={Entry.IsAvailable}"); } } Entry.JoinCommand.Execute(null); // Entry.JoinCommand.Execute(ServerEntry.ForceJoin); } else if (AutoJoinAnyCar) { if (a.PropertyName == nameof(Entry.AutoJoinAnyCarAvailable) && !Entry.AutoJoinAnyCarAvailable) { AutoJoinActive = false; } } else { if (a.PropertyName == nameof(Entry.AutoJoinAvailable) && !Entry.AutoJoinAvailable) { AutoJoinActive = false; } } }