From 14ca308900acd8eaa2fb7b253f04ba38e017a9a6 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 2 Oct 2015 18:31:08 +0200 Subject: [PATCH] Log binding path. --- .../Binding/ExpressionObserver.cs | 11 ++++++++- .../Binding/ExpressionSubject.cs | 5 +++- .../Perspex.Markup/Perspex.Markup.csproj | 6 +++++ src/Perspex.Base/PerspexObject.cs | 24 +++++++++++++------ .../Perspex.Markup.UnitTests.csproj | 4 ++++ 5 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/Markup/Perspex.Markup/Binding/ExpressionObserver.cs b/src/Markup/Perspex.Markup/Binding/ExpressionObserver.cs index fc7a4b2663..ff98e82aeb 100644 --- a/src/Markup/Perspex.Markup/Binding/ExpressionObserver.cs +++ b/src/Markup/Perspex.Markup/Binding/ExpressionObserver.cs @@ -10,7 +10,7 @@ namespace Perspex.Markup.Binding /// /// Observes and sets the value of an expression on an object. /// - public class ExpressionObserver : ObservableBase + public class ExpressionObserver : ObservableBase, IDescription { private object _root; private int _count; @@ -25,6 +25,7 @@ namespace Perspex.Markup.Binding { _root = root; _node = ExpressionNodeBuilder.Build(expression); + Expression = expression; } /// @@ -49,6 +50,11 @@ namespace Perspex.Markup.Binding } } + /// + /// Gets the expression being observed. + /// + public string Expression { get; } + /// /// Gets or sets the root object that the expression is being observed on. /// @@ -73,6 +79,9 @@ namespace Perspex.Markup.Binding } } + /// + string IDescription.Description => Expression; + /// protected override IDisposable SubscribeCore(IObserver observer) { diff --git a/src/Markup/Perspex.Markup/Binding/ExpressionSubject.cs b/src/Markup/Perspex.Markup/Binding/ExpressionSubject.cs index cd076c9ab7..ac5700e512 100644 --- a/src/Markup/Perspex.Markup/Binding/ExpressionSubject.cs +++ b/src/Markup/Perspex.Markup/Binding/ExpressionSubject.cs @@ -10,7 +10,7 @@ namespace Perspex.Markup.Binding /// /// Turns an into a subject that can be bound two-ways. /// - public class ExpressionSubject : ISubject + public class ExpressionSubject : ISubject, IDescription { private ExpressionObserver _inner; @@ -23,6 +23,9 @@ namespace Perspex.Markup.Binding _inner = inner; } + /// + string IDescription.Description => _inner.Expression; + /// public void OnCompleted() { diff --git a/src/Markup/Perspex.Markup/Perspex.Markup.csproj b/src/Markup/Perspex.Markup/Perspex.Markup.csproj index d22201ee9f..a7e6bf61cd 100644 --- a/src/Markup/Perspex.Markup/Perspex.Markup.csproj +++ b/src/Markup/Perspex.Markup/Perspex.Markup.csproj @@ -71,6 +71,12 @@ + + + {b09b78d8-9b26-48b0-9149-d64a2f120f3f} + Perspex.Base + +