From df051b858216886705c43495d35e34b179acf471 Mon Sep 17 00:00:00 2001 From: Paul Knopf Date: Thu, 27 Dec 2018 21:34:20 -0500 Subject: [PATCH] Added helper method for setting properties and auto raising signal if value changes. --- src/net/Qml.Net/Signals.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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);