public InvSpider(IReadOnlyCollection <byte[]> items)
        {
            InitializeComponent();

            _items = items;

            itemGrid.ColumnCount = 4;
            itemGrid.RowCount    = items.Count;

            itemGrid.CellValueChanged += ItemGridOnCellValueChanged;
            itemGrid.CellEndEdit      += ItemGridOnCellEndEdit;

            var currentRow = 0;

            foreach (var bytes in items)
            {
                var id       = BitConverter.ToInt16(bytes, 0);
                var quantity = BitConverter.ToInt32(bytes, 8);

                itemGrid.CurrentCell       = itemGrid.Rows[currentRow].Cells[0];
                itemGrid.CurrentCell.Value = id.ToString("X");
                itemGrid.CurrentCell       = itemGrid.Rows[currentRow].Cells[1];

                var cbox = (DataGridViewComboBoxCell)itemGrid.CurrentCell;
                foreach (var item in Defs.Items)
                {
                    cbox.Items.Add(item.Name);
                }

                cbox.Items.Add("Unknown");

                var existingItem = Defs.ItemById(id);
                cbox.Value = existingItem != null ? existingItem.Name : "Unknown";

                itemGrid.Rows[currentRow].Cells[2].Value = 0;

                itemGrid.CurrentCell       = itemGrid.Rows[currentRow].Cells[2];
                itemGrid.CurrentCell.Value = quantity.ToString();
                itemGrid.CurrentCell       = itemGrid.Rows[currentRow].Cells[3];
                itemGrid.CurrentCell.Value = "Unknown";


                currentRow++;
            }
        }