Пример #1
0
        public void LoadListContainer(int page = 0)
        {
            if (ListContainer == null)
            {
                var listContainer = new Container();
                listContainer.SetName("ListContainer");
                listContainer.SetTexture();

                var scrollContainerSizeX = (float)Size.X * ScrollContainerWidthRatio / 100;
                listContainer.SetPosition(Position);
                listContainer.SetSize(new Vector2(Size.X - scrollContainerSizeX, Size.Y));

                AddChild(listContainer);
            }

            var rowRatio    = (float)100 / RowsCountToShow;
            var columnRatio = (float)100 / ColumnsCountPerRow;

            if (!ListContainer.Rows.Any())
            {
                for (int i = 0; i < MaxRowsCount; i++)
                {
                    if (Columns.Length == 0)
                    {
                        continue;
                    }

                    var columnsToAdd = Columns.Skip(ColumnsCountPerRow * i)
                                       .Take(ColumnsCountPerRow)
                                       .ToList();

                    var row = new Row();
                    //row.SetFrame(Color.White);
                    row.SetName("ListContainerRow");
                    //row.SetTexture(TextureManager.CreateTexture2DByRandomColor());

                    foreach (var column in columnsToAdd)
                    {
                        //column.TestInfo.Font.SetChangeTextEvent(() => { return column.DestinationRectangle.ToString(); });
                        //column.TestInfo.Show();
                        row.AddColumn(column, columnRatio);
                    }
                    //columnsToAdd.ForEach(c => row.AddColumn(c, columnRatio));
                    //columnsToAdd.ForEach(c => c.SetTexture(TextureManager.CreateTexture2DByRandomColor()));

                    ListContainer.AddRow(row, rowRatio);
                }
            }

            ListContainer.Rows.ForEach(r => r.SetActive(false));

            var collection = ListContainer.Rows.Skip(RowsCountToShow * page)
                             .Take(RowsCountToShow)
                             .ToList();

            var counter = 0;

            foreach (var item in collection)
            {
                item.SetActive(true);
                item.TestInfo.Show(true);
                item.TestInfo.Font.SetText(((RowsCountToShow * page) + counter++).ToString());
            }


            RefreshRectangle();
        }