Beispiel #1
1
        public IssueItemCell()
        {
            var key = new Label {
                HorizontalOptions = LayoutOptions.StartAndExpand,
                YAlign = TextAlignment.Center
            };

            key.SetBinding (Label.TextProperty, "Key");

            var summary = new Label {
                HorizontalOptions = LayoutOptions.StartAndExpand,
                YAlign = TextAlignment.Center
            };

            summary.SetBinding (Label.TextProperty, "Summary");

            var editAction = new MenuItem { Text = "Edit" };
            editAction.SetBinding (MenuItem.CommandParameterProperty, new Binding ("."));
            editAction.Clicked += (sender, e) => {
                var mi = (MenuItem) sender;
                var issue = (Issue) mi.CommandParameter;

                var issuePage = new IssuePage(issue.Key);
                issuePage.BindingContext = issue;

                ParentView.Navigation.PushAsync(issuePage);
            };

            var deleteAction = new MenuItem { Text = "Delete", IsDestructive = true };
            deleteAction.SetBinding (MenuItem.CommandParameterProperty, new Binding ("."));
            deleteAction.Clicked += async (sender, e) => {
                var mi = (MenuItem) sender;
                var issue = (Issue) mi.CommandParameter;

                var answer = await App.CurrentPage.DisplayAlert("Delete?", "Would you like to remove this issue?", "Yes", "No");

                if (answer)
                {
                    App.Database.DeleteIssue(issue);

                    if (App.CurrentPage is IssueListPage)
                    {
                        ((IssueListPage)App.CurrentPage).UpdateList();
                    }
                }
            };

            ContextActions.Add (editAction);
            ContextActions.Add (deleteAction);

            View = new StackLayout {
                Padding = new Thickness(20, 5, 0, 0),
                Orientation = StackOrientation.Vertical,
                HorizontalOptions = LayoutOptions.StartAndExpand,
                Children = { key, summary }
            };
        }
Beispiel #2
0
        public IssueListPage(Project project)
        {
            NavigationPage.SetHasNavigationBar (this, true);

            _project = project;

            Title = _project.Name;

            _listview = new ListView{
                RowHeight = 80,
                ItemTemplate = new DataTemplate (typeof(IssueItemCell))
            };

            UpdateList ();

            _listview.ItemSelected += (sender, e) => {
                var issue = (Issue) e.SelectedItem;

                var issuePage = new IssuePage(issue.Key);
                issuePage.BindingContext = issue;

                Navigation.PushAsync (issuePage);
            };

            Content = new StackLayout {
                VerticalOptions = LayoutOptions.FillAndExpand,
                Children = { _listview }
            };

            if (Device.OS == TargetPlatform.iOS) {
                var addMenu = new ToolbarItem("+", null, () => {
                    var issue = new Issue();
                    issue.Project = project;

                    var issuePage = new IssuePage("New Issue");
                    issuePage.BindingContext = issue;

                    Navigation.PushAsync (issuePage);
                }, 0, 0);

                ToolbarItems.Add(addMenu);
            }
        }