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; } }