private void AddOrUpdateToList(IList <PurchaseBillDetailViewModel> purchaseBillDetailViewModels, PurchaseBillDetailViewModel purchaseBillDetailViewModel, int index)
        {
            var item = purchaseBillDetailViewModels.SingleOrDefault(p => p.ProductId == purchaseBillDetailViewModel.ProductId);

            if (item != null)
            {
                item.Quantity = item.Quantity + 1;
            }
            else
            {
                if (index >= purchaseBillDetailViewModels.Count)
                {
                    purchaseBillDetailViewModels.Add(purchaseBillDetailViewModel);
                }
                else
                {
                    purchaseBillDetailViewModels[index] = purchaseBillDetailViewModel;
                }
            }
        }
        private void Name_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var row   = GetParent <DataGridRow>((TextBlock)sender);
            var index = DataGrid_PurchaseBillDetail.Items.IndexOf(row.Item);
            SearchProductsWindow searchPurchaseDetailsWindow = new SearchProductsWindow();

            searchPurchaseDetailsWindow.ShowDialog();
            var product = searchPurchaseDetailsWindow.product;

            if (product == null)
            {
                return;
            }
            var item = new PurchaseBillDetailViewModel(product);

            if (item != null)
            {
                AddOrUpdateToList(purchaseBillViewModel.PurchaseBillDetailViewModels, item, index);
                DataGrid_PurchaseBillDetail.ItemsSource  = null;
                DataGrid_PurchaseBillDetail.ItemsSource  = purchaseBillViewModel.PurchaseBillDetailViewModels;
                DataGrid_PurchaseBillDetail.SelectedItem = item;
            }
        }