private async void ContentPage_Appearing(object sender, EventArgs e) { _vm.startDialogAsync(); if (ToolbarItems.All(x => x.Command != _vm.ShareRouteCommand)) { if (await _vm.UserCanShareAsync()) { ToolbarItems.Add(new ToolbarItem() { Command = _vm.ShareRouteCommand, IconImageSource = "share.png" }); } } }
private void ViewModel_ToolbarItems_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { ToolbarItems.Clear(); if (!(sender is ObservableCollection <ToolbarItem> vmToolbar)) { return; } foreach (var item in vmToolbar) { if (ToolbarItems.All(x => x.Text != item.Text)) { ToolbarItems.Add(item); } } }
private void PurchaseOrderListPage_OnAppearing(object sender, EventArgs e) { try { var vm = (BindingContext as PurchaseOrderVM); vm?.LoadDirectory(); PoListView.ItemSelected += (o, args) => { var poSelected = (PurchaseOrder)PoListView.SelectedItem; if (poSelected == null) { return; } Navigation.PushAsync(new PurchaseOrderPage(poSelected, vm)); PoListView.SelectedItem = null; }; if (ToolbarItems.All(x => !x.Text.StartsWith("Status: "))) { ToolbarItems.Add(_azureSyncToolbarItem); } UpdateStatus(); PoListView.ItemDisappearing += (s, args) => { UpdateStatus(); }; if (ToolbarItems.Any(x => x.Text == App.CurrentUser.Id)) { return; } ToolbarItems.Add(new ToolbarItem { Icon = "usericon.png", Text = App.CurrentUser.Id, Command = new Command(() => DisplayAlert("Login info", App.CurrentUser.Id, "OK")) }); } catch (Exception ex) { DisplayAlert("Error", ex.Message, "OK"); } }
protected override void OnBindingContextChanged() { base.OnBindingContextChanged(); var viewModel = BindingContext as IBaseViewModel; if (viewModel?.ToolbarItems == null) { return; } viewModel.ToolbarItems.CollectionChanged += ViewModel_ToolbarItems_CollectionChanged; foreach (var toolBarItem in viewModel.ToolbarItems) { if (ToolbarItems.All(x => x.Text != toolBarItem.Text)) { ToolbarItems.Add(toolBarItem); } } }