Beispiel #1
0
        public Control VisitWithResult(XmlNode node, ParseContext context)
        {
            var typeName = string.Format("{0}.{1}", node.NamespaceURI, node.LocalName);

            var childType = context.GetCustomControlType(typeName);

            if (childType != null)
            {
                var control = Activator.CreateInstance(childType) as Control;

                XamlProcessor.LoadAttributes(control, node, context);

                // The top-most panel/controls are going to get their DataContexts set to the passed in view model
                if (control.DataContext == null)
                {
                    control.DataContext = context.ViewModel;
                }

                if (control is Panel)
                {
                    XamlProcessor.LoadPanel(control as Panel, node, context);
                }

                return(control);
            }

            Debug.LogError("Could not locate panel class for type: " + typeName);

            return(null);
        }
Beispiel #2
0
        public Control VisitWithResult(XmlNode node, ParseContext context)
        {
            var controlType = context.GetControlType(node.LocalName);

            if (controlType != null)
            {
                var control = Activator.CreateInstance(controlType) as Control;

                XamlProcessor.LoadAttributes(control, node, context);

                if (control is Panel)
                {
                    XamlProcessor.LoadPanel(control as Panel, node, context);
                }

                return(control);
            }

            Debug.LogError("Could not locate panel class for type: " + node.LocalName);

            return(null);
        }