private void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
if (dispatcher.HasThreadAccess)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
if (propertyName == nameof(LampState_Hue) ||
propertyName == nameof(LampState_Brightness) ||
propertyName == nameof(LampState_Saturation))
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Color)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(ColorFullBrightness)));
}
if (propertyName == nameof(LampState_Brightness) ||
propertyName == nameof(LampState_OnOff))
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs((nameof(LampParameters_BrightnessLumens))));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs((nameof(LampParameters_EnergyUsageMilliwatts))));
}
}
else
{
var _ = dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () => OnPropertyChanged(propertyName));
}
}