private void RemoveToolbarItem(ToolbarItemViewModel item) { item.PropertyChanged -= ToolbarItemViewModel_PropertyChanged; ToolbarItems.Remove(toolbarItemMapping[item]); toolbarItemMapping.Remove(item); }
private void AddToolbarItem(ToolbarItemViewModel item) { ToolbarItem nativeItem = new ToolbarItem() { Text = item.Title, Icon = item.Icon, Order = (Xamarin.Forms.ToolbarItemOrder)item.Order, Priority = item.Priority, Command = item.Command }; item.PropertyChanged += ToolbarItemViewModel_PropertyChanged; ToolbarItems.Add(nativeItem); toolbarItemMapping.Add(item, nativeItem); }
private void ToolbarItemViewModel_PropertyChanged(object sender, PropertyChangedEventArgs e) { ToolbarItemViewModel item = sender as ToolbarItemViewModel; switch (e.PropertyName) { case "Title": toolbarItemMapping[item].Text = item.Title; break; case "Icon": toolbarItemMapping[item].Icon = item.Icon; break; case "Order": toolbarItemMapping[item].Order = (Xamarin.Forms.ToolbarItemOrder)item.Order; break; case "Priority": toolbarItemMapping[item].Priority = item.Priority; break; case "Command": toolbarItemMapping[item].Command = item.Command; break; } }
public ActionsCategoryViewModel() : base(Properties.Resources.MyActionsText, "\xE950", Properties.Resources.AddonDescriptionText, EarTrumpetActionsAddon.Current.Manifest.Id, new ObservableCollection <SettingsPageViewModel>()) { // Get a 'fresh' copy so that we can edit the objects and still go back later. var actions = EarTrumpetActionsAddon.Current.Actions; EarTrumpetActionsAddon.Current.Actions = EarTrumpetActionsAddon.Current.Actions; Pages.AddRange(actions.Select(a => new EarTrumpetActionViewModel(this, a))); Pages.Add(new ImportExportPageViewModel(this)); Toolbar = new ToolbarItemViewModel[] { new ToolbarItemViewModel { Command = new RelayCommand(() => { var vm = new EarTrumpetActionViewModel(this, new EarTrumpetAction { DisplayName = Properties.Resources.NewActionText }); vm.IsWorkSaved = false; vm.IsPersisted = false; vm.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(vm.IsSelected) && vm.IsSelected && !Pages.Contains(vm)) { Pages.Insert(0, vm); } }; Selected = vm; }), DisplayName = Properties.Resources.NewActionText, Glyph = "\xE948", GlyphFontSize = 15, } }; if (Pages.Count == 2) { Toolbar[0].Command.Execute(null); } }