private void AddOrUpdateToList(IList <SaleBillDetailViewModel> saleBillDetailViewModels, SaleBillDetailViewModel saleBillDetailViewModel, int index)
        {
            var item = saleBillDetailViewModels.SingleOrDefault(p => p.ProductId == saleBillDetailViewModel.ProductId);

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

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

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

            if (item != null)
            {
                AddOrUpdateToList(saleBillViewModel.SaleBillDetailViewModels, item, index);
                DataGrid_SaleBillDetail.ItemsSource  = null;
                DataGrid_SaleBillDetail.ItemsSource  = saleBillViewModel.SaleBillDetailViewModels;
                DataGrid_SaleBillDetail.SelectedItem = item;
            }
        }