From bb2e44394b5f5b30d8e2fc6c486245eca7e2d7e4 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sat, 21 Nov 2015 15:06:16 +0100 Subject: [PATCH] Make UserControl a name scope. Closes #322. --- src/Perspex.Controls/UserControl.cs | 36 ++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/Perspex.Controls/UserControl.cs b/src/Perspex.Controls/UserControl.cs index b4701325cf..05c1c998b9 100644 --- a/src/Perspex.Controls/UserControl.cs +++ b/src/Perspex.Controls/UserControl.cs @@ -6,8 +6,42 @@ using Perspex.Styling; namespace Perspex.Controls { - public class UserControl : ContentControl, IStyleable + public class UserControl : ContentControl, IStyleable, INameScope { + private NameScope _nameScope = new NameScope(); + + /// + event EventHandler INameScope.Registered + { + add { _nameScope.Registered += value; } + remove { _nameScope.Registered -= value; } + } + + /// + event EventHandler INameScope.Unregistered + { + add { _nameScope.Unregistered += value; } + remove { _nameScope.Unregistered -= value; } + } + Type IStyleable.StyleKey => typeof(ContentControl); + + /// + void INameScope.Register(string name, object element) + { + _nameScope.Register(name, element); + } + + /// + object INameScope.Find(string name) + { + return _nameScope.Find(name); + } + + /// + void INameScope.Unregister(string name) + { + _nameScope.Unregister(name); + } } }