コード例 #1
0
 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"
             });
         }
     }
 }
コード例 #2
0
        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);
                }
            }
        }
コード例 #3
0
        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");
            }
        }
コード例 #4
0
        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);
                }
            }
        }