internal MenuShellItem(MenuItem menuItem) { MenuItem = menuItem; SetBinding(TitleProperty, new Binding("Text", BindingMode.OneWay, source: menuItem)); SetBinding(IconProperty, new Binding("Icon", BindingMode.OneWay, source: menuItem)); Shell.SetMenuItemTemplate(this, Shell.GetMenuItemTemplate(MenuItem)); MenuItem.PropertyChanged += OnMenuItemPropertyChanged; }
void OnMenuItemPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == Shell.MenuItemTemplateProperty.PropertyName) { Shell.SetMenuItemTemplate(this, Shell.GetMenuItemTemplate(MenuItem)); } else if (e.PropertyName == TitleProperty.PropertyName) { OnPropertyChanged(MenuItem.TextProperty.PropertyName); } }
internal MenuShellItem(MenuItem menuItem) { MenuItem = menuItem; SetBinding(TitleProperty, new Binding(nameof(MenuItem.Text), BindingMode.OneWay, source: menuItem)); SetBinding(IconProperty, new Binding(nameof(MenuItem.IconImageSource), BindingMode.OneWay, source: menuItem)); SetBinding(FlyoutIconProperty, new Binding(nameof(MenuItem.IconImageSource), BindingMode.OneWay, source: menuItem)); Shell.SetMenuItemTemplate(this, Shell.GetMenuItemTemplate(MenuItem)); MenuItem.PropertyChanged += OnMenuItemPropertyChanged; }