Exemple #1
0
        /// <summary>
        /// Initalized the correct tempalte based on the type.
        /// </summary>
        private void InitalizeTemplate()
        {
            DestroyTemplate();

            // Get value from view model.
            var viewModelPropertyValue = viewModelProperty.GetValue(viewModel, null);

            if (viewModelPropertyValue == null)
            {
                throw new ApplicationException("Cannot bind to null property in view: " + viewModelPropertyName);
            }

            // Select template.
            var             viewModelValueType = viewModelPropertyValue.GetType().Name;
            TemplateBinding selectedTemplate   = null;

            if (!availableTemplates.TryGetValue(viewModelValueType, out selectedTemplate))
            {
                throw new ApplicationException("Cannot find matching template for: " + viewModelValueType);
            }

            // Setup selected template.
            initalizedTemplate = Instantiate(selectedTemplate);

            initalizedTemplate.transform.SetParent(transform, false);
            initalizedTemplate.gameObject.SetActive(true);

            initalizedTemplate.InitChildBindings(viewModelPropertyValue);
        }
Exemple #2
0
        /// <summary>
        /// Destroys the instantiated template.
        /// </summary>
        private void DestroyTemplate()
        {
            if (initalizedTemplate == null)
            {
                return;
            }

            Destroy(initalizedTemplate.gameObject);
            initalizedTemplate = null;
        }