Example #1
0
        void OnHeaderOrFooterChanged(ref Element storage, string property, object dataObject, DataTemplate template, bool templateChanged)
        {
            if (dataObject == null)
            {
                if (!templateChanged)
                {
                    OnPropertyChanging(property);
                    storage = null;
                    OnPropertyChanged(property);
                }

                return;
            }

            if (template == null)
            {
                var view = dataObject as Element;
                if (view == null || view is Page)
                {
                    view = new Label {
                        Text = dataObject.ToString()
                    }
                }
                ;

                view.Parent = this;
                OnPropertyChanging(property);
                storage = view;
                OnPropertyChanged(property);
            }
            else if (storage == null || templateChanged)
            {
                OnPropertyChanging(property);
                storage = template.CreateContent() as Element;
                if (storage != null)
                {
                    storage.BindingContext = dataObject;
                    storage.Parent         = this;
                }
                OnPropertyChanged(property);
            }
            else
            {
                storage.BindingContext = dataObject;
            }
        }