protected void TriggerValueChange(bool propagateToBindings = true) { ValueChanged?.Invoke(value); if (propagateToBindings) { bindings?.ForEachAlive(b => b.Value = value); } }
protected void TriggerValueChange(bool propagateToBindings = true) { // check a bound bindable hasn't changed the value again (it will fire its own event) T beforePropagation = value; if (propagateToBindings) { Bindings?.ForEachAlive(b => b.Value = value); } if (Equals(beforePropagation, value)) { ValueChanged?.Invoke(value); } }
private void checkLocale(string newValue) { var locales = SupportedLocales.ToList(); string validLocale = null; if (locales.Contains(newValue)) { validLocale = newValue; } else { var culture = string.IsNullOrEmpty(newValue) ? CultureInfo.CurrentCulture : new CultureInfo(newValue); for (var c = culture; !c.Equals(CultureInfo.InvariantCulture); c = c.Parent) { if (locales.Contains(c.Name)) { validLocale = c.Name; break; } } if (validLocale == null) { validLocale = locales[0]; } } if (validLocale != newValue) { locale.Value = validLocale; } else { var culture = new CultureInfo(validLocale); CultureInfo.DefaultThreadCurrentCulture = culture; CultureInfo.DefaultThreadCurrentUICulture = culture; ChangeLocale(validLocale); localisedBindings.ForEachAlive(b => b.Value = GetLocalised(b.Key)); formattableBindings.ForEachAlive(b => b.Update()); } }
protected override void AddCheckSteps() { AddUntilStep("no leaked beatmaps", () => { GC.Collect(); GC.WaitForPendingFinalizers(); int count = 0; workingWeakReferences.ForEachAlive(_ => count++); return(count == 1); }); AddUntilStep("no leaked players", () => { GC.Collect(); GC.WaitForPendingFinalizers(); int count = 0; playerWeakReferences.ForEachAlive(_ => count++); return(count == 1); }); }
protected void TriggerValueChange() { ValueChanged?.Invoke(value); bindings?.ForEachAlive(b => b.Value = value); }