Exemple #1
0
 void MenuItemViewModels_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
 {
     if (e.OldItems != null)
     {
         foreach (var item in e.OldItems)
         {
             var model = (item as MenuItemViewModel);
             var view  = _menuViewItems.FirstOrDefault(v => v.Key == model);
             _contentCanvas.Children.Remove(view.Value);
             _menuViewItems.Remove(view.Key);
             updateRendering();
         }
     }
     else if (e.NewItems != null)
     {
         foreach (var item in e.NewItems)
         {
             var menuItemView = new MenuItemView()
             {
                 DataContext = (item as MenuItemViewModel)
             };
             var model = (item as MenuItemViewModel);
             _menuViewItems.Add(model, menuItemView);
             _contentCanvas.Children.Insert(0, menuItemView);
             updateRendering();
         }
     }
 }
Exemple #2
0
        void MenuView_DataContextChanged(FrameworkElement sender, Windows.UI.Xaml.DataContextChangedEventArgs e)
        {
            if (e.NewValue != null)
            {
                _menuViewItems.Clear();
                _contentCanvas.Children.Clear();

                var model = (e.NewValue as MenuViewModel);
                model.PropertyChanged -= MenuViewModel_PropertyChanged;
                model.PropertyChanged += MenuViewModel_PropertyChanged;
                model.MenuItemViewModels.CollectionChanged -= MenuItemViewModels_CollectionChanged;
                model.MenuItemViewModels.CollectionChanged += MenuItemViewModels_CollectionChanged;
                model.Updated -= Model_Updated;
                model.Updated += Model_Updated;

                foreach (var item in model.MenuItemViewModels)
                {
                    var menuItemView = new MenuItemView()
                    {
                        DataContext = item
                    };
                    if (model.IsDisplayed || item.IsAlwaysDisplayed)
                    {
                        menuItemView.Opacity = 1;
                    }
                    else
                    {
                        menuItemView.Opacity = 0;
                    }
                    _menuViewItems.Add(item, menuItemView);
                    _contentCanvas.Children.Add(menuItemView);
                }

                updateRendering();
            }
        }