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