From f08220c5997d3c9d089e4888ca3555502cc0c7a5 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 22:54:27 +0200 Subject: [PATCH] Add shorthand property AddClassHandler. --- src/Perspex.Base/PerspexObjectExtensions.cs | 18 ++++++++++++++++++ src/Perspex.Controls/Window.cs | 7 +------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Perspex.Base/PerspexObjectExtensions.cs b/src/Perspex.Base/PerspexObjectExtensions.cs index c40266b4f6..69484abc4c 100644 --- a/src/Perspex.Base/PerspexObjectExtensions.cs +++ b/src/Perspex.Base/PerspexObjectExtensions.cs @@ -14,6 +14,24 @@ namespace Perspex /// public static class PerspexObjectExtensions { + /// + /// Subscribes to a property changed notifications for changes that originate from a + /// . + /// + /// The type of the property change sender. + /// The property changed observable. + /// + /// The method to call. The parameters are the sender and the event args. + /// + /// A disposable that can be used to terminate the subscription. + public static IDisposable AddClassHandler( + this IObservable observable, + Action action) + where TTarget : PerspexObject + { + return observable.Subscribe(e => action((TTarget)e.Sender, e)); + } + /// /// Subscribes to a property changed notifications for changes that originate from a /// . diff --git a/src/Perspex.Controls/Window.cs b/src/Perspex.Controls/Window.cs index 3f7fde81d1..970f4fc60c 100644 --- a/src/Perspex.Controls/Window.cs +++ b/src/Perspex.Controls/Window.cs @@ -66,7 +66,7 @@ namespace Perspex.Controls static Window() { BackgroundProperty.OverrideDefaultValue(typeof(Window), Brushes.White); - TitleProperty.Changed.AddClassHandler(x => x.TitleChanged); + TitleProperty.Changed.AddClassHandler((s, e) => s.PlatformImpl.SetTitle((string)e.NewValue)); } /// @@ -235,10 +235,5 @@ namespace Perspex.Controls base.HandleResized(clientSize); } - - private void TitleChanged(PerspexPropertyChangedEventArgs e) - { - this.PlatformImpl.SetTitle((string)e.NewValue); - } } }