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(); }
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); } }