protected override void OnDataContextChanged(FrameworkElement element, object dataContext)
        {
            IDefinition definition = null;

            if (dataContext != null)
            {
                var manager = element.FindSettingsManager();

                var id = PropertyWalker.GetDefinitionId(dataContext, Path);

                definition = manager.GetDefinition(id);
            }

            ((IHaveSettings)element).Settings = definition;
        }
        protected override bool OnResolvableDataContextChanged(ContentControl element, object dataContext)
        {
            if (dataContext == null)
            {
                element.Content = "";
                return(false);
            }

            var manager = element.FindSettingsManager();

            var id         = PropertyWalker.GetDefinitionId(dataContext, Path);
            var definition = manager.GetDefinition(id);

            var label = definition.Label;

            if (_appendColon)
            {
                label += ":";
            }

            element.Content = label;
            return(true);
        }