diff --git a/src/net/Qml.Net/Signals.cs b/src/net/Qml.Net/Signals.cs index 6446e77b..46e83670 100644 --- a/src/net/Qml.Net/Signals.cs +++ b/src/net/Qml.Net/Signals.cs @@ -1,4 +1,5 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using Qml.Net.Internal; @@ -66,6 +67,15 @@ namespace Qml.Net return ActivateSignal(instance, signalName); } + public static bool SetProperty(this object instance, ref T storage, T value, [CallerMemberName] string propertyName = "") + { + if (EqualityComparer.Default.Equals(storage, value)) + return false; + storage = value; + instance.ActivateNotifySignal(propertyName); + return true; + } + public static void AttachToSignal(this object instance, string signalName, System.Delegate del) { instance.AttachDelegateToSignal(signalName, del);