private void deleteButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (this.datagridProduct.Items.Count > 0)
         {
             SalesItemBind itemBindInfo = this.datagridProduct.SelectedValue as SalesItemBind;
             itemList.RemoveAt(this.datagridProduct.SelectedIndex);
             SalesItemInfo productInfoExist = itemInfoList.SingleOrDefault(i => i.ProductID == itemBindInfo.ItemInfo.ProductID);
             itemInfoList.Remove(productInfoExist);
             SetTotalAmount();
             datagridProduct.Items.Refresh();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message.ToString());
     }
 }
        private void Grid_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
            {
                if (autoProductName.SelectedItem != null && txtQty.Text.Length > 0 && comboRetailRate.Text != null && comboUoM.SelectedValue != null)
                {
                    ProductInfo productInfo = null;

                    if (autoProductName.SelectedItem != null)
                    {
                        productInfo = (ProductInfo)autoProductName.SelectedItem;
                    }

                    int           itemNum          = 0;
                    SalesItemInfo productInfoExist = null;
                    if (itemInfoList != null && itemInfoList.Count > 0)
                    {
                        itemNum          = _invoiceInfo.SalesItemList.Length + 1;
                        productInfoExist = _invoiceInfo.SalesItemList.ToList().SingleOrDefault(i => i.ProductID == productInfo.ProductCode);
                    }
                    else
                    {
                        itemNum = 1;
                    }

                    if (productInfoExist != null)
                    {
                        MessageBox.Show("Product already in the list. If you want to change qty please update in the list it self");
                        this.autoProductName.Focus();
                        comboRetailRate.SelectedItem = null;
                        autoProductName.SelectedItem = null;
                        txtDiscount.Text             = "";
                        txtQty.Text = "";
                    }
                    else
                    {
                        if (productInfo != null)
                        {
                            SalesItemBind itemBindInfo = new SalesItemBind();
                            itemBindInfo.ItemNum            = itemNum;
                            itemBindInfo.ItemInfo.ProductID = productInfo.ProductCode;
                            decimal discountRate = 0;
                            decimal.TryParse(txtDiscount.Text, out discountRate);
                            itemBindInfo.DisplayProductName    = productInfo.ProductDescription + " - " + productInfo.VendorInfo.SupplierName;
                            itemBindInfo.ItemInfo.DiscountRate = discountRate;
                            decimal qty = 0;
                            decimal.TryParse(txtQty.Text, out qty);
                            itemBindInfo.ItemInfo.Qty = qty;
                            decimal retailRate = 0;

                            retailRate = Convert.ToDecimal(comboRetailRate.Text);

                            itemBindInfo.ItemInfo.RetailRate = retailRate;
                            itemBindInfo.ItemInfo.Unit       = comboUoM.SelectedValue.ToString();

                            if (discountRate > 0)
                            {
                                itemBindInfo.ItemInfo.Amount = qty * discountRate;
                            }
                            else
                            {
                                itemBindInfo.ItemInfo.Amount = qty * retailRate;
                            }


                            itemInfoList.Add(itemBindInfo.ItemInfo);
                            itemList.Add(itemBindInfo);
                            _invoiceInfo.SalesItemList  = itemInfoList.ToArray();
                            datagridProduct.ItemsSource = null;
                            datagridProduct.ItemsSource = itemList;
                            SetTotalAmount();
                        }

                        this.autoProductName.Focus();
                        comboRetailRate.SelectedItem = null;
                        autoProductName.SelectedItem = null;
                        txtDiscount.Text             = "";
                        txtQty.Text = "";
                    }
                }
            }
        }