Пример #1
0
        public void LoadData(IMotherboard motherboard)
        {
            Motherboard = new MotherboardRowData(motherboard ?? throw new ArgumentNullException(nameof(motherboard)));

            picMotherboard.ImageLocation = Motherboard.Images.FirstOrDefault()?.Url;
            txtId.Text          = Motherboard.Id;
            txtName.Text        = Motherboard.Name;
            txtBrand.Text       = Motherboard.Brand;
            txtModel.Text       = Motherboard.Model;
            txtVersion.Text     = Motherboard.Version;
            txtTags.Text        = Motherboard.TagsString;
            txtDescription.Text = Motherboard.Description;

            {
                List <ITool> tools = _model.Tools.Where(x => motherboard.ToolIds.Contains(x.Id)).ToList();

                flpTools.Controls.Clear();

                foreach (ITool item in tools)
                {
                    ITool     tool = item;
                    LinkLabel lbl  = new LinkLabel()
                    {
                        Text     = tool.Name,
                        AutoSize = true,
                        Anchor   = AnchorStyles.Left | AnchorStyles.Right
                    };

                    flpTools.Controls.Add(lbl);

                    lbl.Click += (s, a) =>
                    {
                        ToolSelected?.Invoke(this, tool);
                    };
                }
            }

            grdImages.DataSource = motherboard.Images.Select(x => new
            {
                x.Name,
                x.Url,
                Image = new Bitmap(x.Url)
            }).ToList();
            grdImages.AutoResizeColumns();

            grdBioses.DataSource = new GenericBindingList <BiosRowData>
                                   (
                _model
                .Bioses
                .Where(x => x.MotherboardIds.Contains(motherboard.Id))
                .Select(x => new BiosRowData(x))
                                   );
            grdBioses.AutoResizeColumns();

            grdLinks.DataSource = motherboard.Links;
            grdLinks.AutoResizeColumns();
        }
Пример #2
0
        private void grdMotherboards_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            var grid = (DataGridView)sender;

            if (grid.Columns[e.ColumnIndex] is DataGridViewButtonColumn && e.RowIndex >= 0)
            {
                GenericBindingList <MotherboardRowData> list = (GenericBindingList <MotherboardRowData>)bsMotherboards.DataSource;

                MotherboardRowData motherboard = list[e.RowIndex];
                MotherboardSelected?.Invoke(this, motherboard.Source);
            }
        }