private void stockInControl_ReadTagsClicked(object sender, ReadTagsClickedEventArgs e) { RemoveAllControls(); StockIn stockIn = e.StockIn; IList <Product> products = ProductService.GetProductsBuStockIn(stockIn); // 将products转成readerControl需要的格式 IList <ReaderProductViewModel> productViewModels = ReaderProductViewModel.GetByProducts(products); AddReaderControl(productViewModels); }
private void SetProducts(IList <ReaderProductViewModel> products) { dgProducts.DataSource = products; // 让已经读到的标签,处于选中状态,所以会显示绿色 for (int i = 0; i < products.Count; i++) { ReaderProductViewModel product = products[i]; if (product.IsRead == true) { dgProducts.Select(i); } else { dgProducts.UnSelect(i); } } }
private void readerService_TagDataReceived(object sender, TagDataReceivedEventArgs e) { this.Invoke((EventHandler) delegate { string text = ""; foreach (TagData item in e.TagData) { text += item.TagID + "\r\n"; if (products != null) { // tag已经读取到,配置isRead属性为true IList <ReaderProductViewModel> readProducts = products.Where(p => p.TagId == item.TagID).ToList(); if (readProducts != null && readProducts.Count != 0) { ReaderProductViewModel product = readProducts.First(); if (product != null) { product.IsRead = true; } } } } // 让没有读取到的tag,显示在前面 if (products != null) { products = products.OrderBy(p => p.IsRead).ToList(); SetProducts(products); } txtMessage.Text = text; labTotalRead.Text = "读" + products.Where(p => p.IsRead).Count() + "共" + products.Count(); }); }