Exemplo n.º 1
0
        public override Android.Views.View GetSampleContent(Android.Content.Context context)
        {
            sfGrid                          = new SfDataGrid(context);
            viewModel                       = new GroupingViewModel();
            sfGrid.ItemsSource              = viewModel.ProductDetails;
            sfGrid.SelectionMode            = SelectionMode.Single;
            sfGrid.AllowGroupExpandCollapse = true;
            sfGrid.AutoGeneratingColumn    += OnAutoGenerateColumn;
            sfGrid.AllowResizingColumn      = true;
            sfGrid.VerticalOverScrollMode   = VerticalOverScrollMode.None;
            sfGrid.ColumnSizer              = ColumnSizer.Auto;

            // Multi-Grouping
            sfGrid.GroupingMode = GroupingMode.Multiple;
            sfGrid.GroupColumnDescriptions.Add(new GroupColumnDescription()
            {
                ColumnName = "Product"
            });
            sfGrid.GroupColumnDescriptions.Add(new GroupColumnDescription()
            {
                ColumnName = "ProductModel"
            });

            // GroupSummary codes
            GridGroupSummaryRow groupSummaryRow = new GridGroupSummaryRow();

            groupSummaryRow.Title            = "Total items:{Total} items";
            groupSummaryRow.ShowSummaryInRow = true;
            GridSummaryColumn groupSummaryColumn = new GridSummaryColumn();

            groupSummaryColumn.Name        = "Total";
            groupSummaryColumn.MappingName = "OrderID";
            groupSummaryColumn.Format      = "{Count}";
            groupSummaryColumn.SummaryType = Syncfusion.Data.SummaryType.CountAggregate;
            groupSummaryRow.SummaryColumns.Add(groupSummaryColumn);
            sfGrid.GroupSummaryRows.Add(groupSummaryRow);

            // TableSummary codes
            GridTableSummaryRow summaryRow = new GridTableSummaryRow();

            summaryRow.Title            = "Total items:{Total} items";
            summaryRow.ShowSummaryInRow = true;
            summaryRow.Position         = Position.Bottom;
            GridSummaryColumn summaryColumn = new GridSummaryColumn();

            summaryColumn.Name        = "Total";
            summaryColumn.MappingName = "OrderID";
            summaryColumn.Format      = "{Count}";
            summaryColumn.SummaryType = Syncfusion.Data.SummaryType.CountAggregate;
            summaryRow.SummaryColumns.Add(summaryColumn);
            sfGrid.TableSummaryRows.Add(summaryRow);

            return(sfGrid);
        }
Exemplo n.º 2
0
        public Grouping()
        {
            this.SfGrid = new SfDataGrid();
            this.SfGrid.SelectionMode            = SelectionMode.Single;
            this.SfGrid.ItemsSource              = new GroupingViewModel().ProductDetails;
            this.SfGrid.AutoGeneratingColumn    += GridAutoGenerateColumns;
            this.SfGrid.HeaderRowHeight          = 45;
            this.SfGrid.RowHeight                = 45;
            this.SfGrid.AllowGroupExpandCollapse = true;
            this.SfGrid.AllowResizingColumn      = true;

            // Multi-Grouping
            this.SfGrid.GroupingMode = GroupingMode.Multiple;
            this.SfGrid.GroupColumnDescriptions.Add(new GroupColumnDescription()
            {
                ColumnName = "Product"
            });
            this.SfGrid.GroupColumnDescriptions.Add(new GroupColumnDescription()
            {
                ColumnName = "ProductModel"
            });

            // GroupSummary codes
            GridGroupSummaryRow groupSummaryRow = new GridGroupSummaryRow();

            groupSummaryRow.Title            = "Total items:{Total} items";
            groupSummaryRow.ShowSummaryInRow = true;
            GridSummaryColumn groupSummaryColumn = new GridSummaryColumn();

            groupSummaryColumn.Name        = "Total";
            groupSummaryColumn.MappingName = "Product";
            groupSummaryColumn.Format      = "{Count}";
            groupSummaryColumn.SummaryType = Syncfusion.Data.SummaryType.CountAggregate;
            groupSummaryRow.SummaryColumns.Add(groupSummaryColumn);
            SfGrid.GroupSummaryRows.Add(groupSummaryRow);

            //TableSummary codes
            GridTableSummaryRow summaryRow = new GridTableSummaryRow();

            summaryRow.Title            = "Total items:{Total} items";
            summaryRow.ShowSummaryInRow = true;
            summaryRow.Position         = Position.Bottom;
            GridSummaryColumn summaryColumn = new GridSummaryColumn();

            summaryColumn.Name        = "Total";
            summaryColumn.MappingName = "ProductID";
            summaryColumn.Format      = "{Count}";
            summaryColumn.SummaryType = Syncfusion.Data.SummaryType.CountAggregate;
            summaryRow.SummaryColumns.Add(summaryColumn);
            this.SfGrid.TableSummaryRows.Add(summaryRow);

            this.AddSubview(SfGrid);
        }
Exemplo n.º 3
0
        private void CreateDataGrid()
        {
            _dataGrid = new SfDataGrid
            {
                EnableDataVirtualization = true,
                AutoGenerateColumns      = false,
                AutoExpandGroups         = false,
                AllowGroupExpandCollapse = true,
                LiveDataUpdateMode       = LiveDataUpdateMode.AllowSummaryUpdate,
                SelectionMode            = Syncfusion.SfDataGrid.XForms.SelectionMode.SingleDeselect,
                NavigationMode           = NavigationMode.Cell,
                FrozenColumnsCount       = 2,
                EditTapAction            = TapAction.OnTap,
                GridStyle = new BudgetDataGridStyle()
            };

            _dataGrid.SortComparers.Add(new SortComparer
            {
                PropertyName = "Category.Name",
                Comparer     = new BudgetCategorySortComparer()
            });
            _dataGrid.CurrentCellEndEdit += DataGrid_CurrentCellEndEdit;
            _dataGrid.GroupColumnDescriptions.Add(new GroupColumnDescription
            {
                ColumnName = "Category.Name",
            });

            var gridSummaryRow = new GridGroupSummaryRow
            {
                ShowSummaryInRow = true,
                Title            = "{Key}: {Total}",
                SummaryColumns   = new ObservableCollection <ISummaryColumn>
                {
                    new GridSummaryColumn
                    {
                        Name            = "Total",
                        MappingName     = "Subcat.Value",
                        SummaryType     = SummaryType.Custom,
                        CustomAggregate = new CurrencyDataGridHeader(),
                        Format          = "{Currency}",
                    }
                },
            };

            _dataGrid.CaptionSummaryRow = gridSummaryRow;

            _dataGrid.CaptionSummaryTemplate = new DataTemplate(() =>
            {
                var stackLayout = new StackLayout {
                    Orientation = StackOrientation.Horizontal, Margin = new Thickness(5, 0)
                };
                var label = new Label {
                    FontFamily = "FiraSans-Regular.otf#Fira Sans Regular", VerticalTextAlignment = TextAlignment.Center, FontSize = 16, TextColor = Color.Black
                };

                var icon = new Image {
                    HeightRequest = 25
                };
                icon.SetBinding(Image.SourceProperty, new Binding(".", BindingMode.Default, new BudgetGridIconConverter(), _dataGrid));

                var converter = new BudgetDataGridSummaryConverter();
                var binding   = new Binding(".", BindingMode.Default, converter, _dataGrid);
                label.SetBinding(Label.TextProperty, binding);

                stackLayout.Children.Add(icon);
                stackLayout.Children.Add(label);

                return(new ViewCell {
                    View = stackLayout
                });
            });

            _dataGrid.Columns.Add(new GridTextColumn
            {
                MappingName        = "Subcat.Name",
                HeaderText         = "Kategoria",
                Width              = 100,
                HeaderFont         = "FiraSans-Bold.otf#Fira Sans Bold",
                RecordFont         = "FiraSans-Regular.otf#Fira Sans Regular",
                HeaderCellTextSize = 16,
                LoadUIView         = true
            });

            _dataGrid.Columns.Add(new GridNumericColumn
            {
                MappingName        = "SubcatReal.Value",
                HeaderText         = "Suma",
                HeaderFont         = "FiraSans-Bold.otf#Fira Sans Bold",
                RecordFont         = "FiraSans-Bold.otf#Fira Sans Bold",
                LoadUIView         = true,
                CellTextSize       = 10,
                HeaderCellTextSize = 16,
                DisplayBinding     = new Binding()
                {
                    Path = "SubcatReal.Value", Converter = new CurrencyValueConverter()
                }
            });

            for (int i = 0; i < 31; i++)
            {
                _dataGrid.Columns.Add(new GridNumericColumn
                {
                    MappingName  = $"SubcatReal.Values[{i}].Value",
                    HeaderText   = (i + 1).ToString(),
                    AllowEditing = true,
                    //LoadUIView = true,
                    HeaderFont          = "FiraSans-Bold.otf#Fira Sans Bold",
                    RecordFont          = "FiraSans-Regular.otf#Fira Sans Regular",
                    CellTextSize        = 10,
                    HeaderCellTextSize  = 16,
                    HeaderFontAttribute = FontAttributes.Bold,
                    DisplayBinding      = new Binding()
                    {
                        Path = $"SubcatReal.Values[{i}].Value", Converter = new CurrencyValueConverter()
                    }
                });
            }

            _dataGrid.SetBinding(SfDataGrid.ItemsSourceProperty, nameof(BudgetData));

            mainLayout.Children.Add(_dataGrid);
        }