From: Jiyun Yang Date: Tue, 1 Aug 2023 05:05:55 +0000 (+0900) Subject: [NUI] Add non-generic WeakEventProxy X-Git-Tag: accepted/tizen/unified/20231205.024657~227 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0a185b156588c93ffcb5da53e9990d876f2e688e;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Add non-generic WeakEventProxy Signed-off-by: Jiyun Yang --- diff --git a/src/Tizen.NUI/src/internal/Common/WeakEvent.cs b/src/Tizen.NUI/src/internal/Common/WeakEvent.cs index a2745cf..e886b93 100755 --- a/src/Tizen.NUI/src/internal/Common/WeakEvent.cs +++ b/src/Tizen.NUI/src/internal/Common/WeakEvent.cs @@ -130,4 +130,39 @@ namespace Tizen.NUI Invoke(sender, args as EventArgs); } } + + /// + /// The non-generic version of . + /// + internal abstract class WeakEventProxy : WeakEvent + { + protected abstract void ConnectToEvent(EventHandler handler); + + protected abstract void DisconnectToEvent(EventHandler handler); + + public override void Add(EventHandler handler) + { + if (Count == 0) + { + ConnectToEvent(OnEventInvoked); + } + + base.Add(handler); + } + + public override void Remove(EventHandler handler) + { + base.Remove(handler); + + if (Count == 0) + { + DisconnectToEvent(OnEventInvoked); + } + } + + private void OnEventInvoked(object sender, EventArgs args) + { + Invoke(sender, args); + } + } }