Пример #1
0
        internal void OnLayoutDefinitionChanged(LayoutDefinitionBase oldLayoutDefinition, LayoutDefinitionBase newLayoutDefinition)
        {
            this.owner.ScrollToTop();

            if (oldLayoutDefinition != null)
            {
                oldLayoutDefinition.PropertyChanged -= LayoutDefinition_PropertyChanged;
            }

            if (newLayoutDefinition != null)
            {
                newLayoutDefinition.PropertyChanged += LayoutDefinition_PropertyChanged;
            }

            if (this.strategy != null)
            {
                this.strategy.FullyRecycle();
            }

            this.strategy = newLayoutDefinition.CreateStrategy(this.modelGenerator, this.owner);

            if (this.model.CurrentDataProvider != null && this.model.CurrentDataProvider.Status == DataProviderStatus.Ready)
            {
                this.model.SetLayoutSource();
            }

            this.strategy.FullyRecycle();

            this.owner.UpdateService.RegisterUpdate((int)UpdateFlags.AffectsContent);

            // TODO: add callback for orientation changed
        }
Пример #2
0
        private void LayoutModeSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string definitionString = (sender as ComboBox).SelectedItem.ToString();

            LayoutDefinitionBase layout = null;

            switch (definitionString)
            {
            case "Stack":
                layout = new StackLayoutDefinition();
                this.listView.ItemTemplate = Root.Resources["DefaultTemplate"] as DataTemplate;
                break;

            case "Wrap":
                layout = new WrapLayoutDefinition()
                {
                    ItemWidth = 400
                };
                this.listView.ItemTemplate = Root.Resources["DefaultTemplate"] as DataTemplate;
                break;

            case "Staggered":
                layout = new StaggeredLayoutDefinition();
                this.listView.ItemTemplate = null;
                break;

            default:
                break;
            }
            this.listView.ItemTemplateSelector = Root.Resources["Selector"] as DataTemplateSelector;

            this.listView.LayoutDefinition = layout;
        }
Пример #3
0
 internal void OnLayoutDefinitionChanged(LayoutDefinitionBase oldLayoutDefinition, LayoutDefinitionBase newLayoutDefinition)
 {
     this.layoutController.OnLayoutDefinitionChanged(oldLayoutDefinition, newLayoutDefinition);
 }