// Добавляем значение void btnAdd_Click(object sender, RoutedEventArgs e) { var win = new NewRequestWindow { Owner = this }; if (win.ShowDialog() != true) { return; } var item = requests.SingleOrDefault(x => x.Name == win.NewDetails && x.Article == win.NewArticle && x.Type == type); if (item == null) { requests.Add(new OMTSRequest(type, win.NewDetails, win.NewCount) { Article = win.NewArticle }); } else // если такой уже есть добавляем количество { item.TotalCount += win.NewCount; } }
private void btnComplete_Click(object sender, RoutedEventArgs e) { var btn = sender as Control; if (btn == null || !(btn.Tag is OMTSRequest)) { return; } var request = (OMTSRequest)btn.Tag; var win = new NewRequestWindow(false) { Owner = this, NewCount = request.DebtCount, NewDetails = request.Name, DebtCount = request.DebtCount, NewArticle = request.Article }; if (win.ShowDialog() != true) { return; } // Если частично пришли if (request.TotalCount != win.NewCount) { var count = request.TotalCount - Math.Min(request.TotalCount, win.NewCount); var rNew = new OMTSRequest(request.Type, request.Name, count) { Article = win.NewArticle }; requests.Add(rNew); request.ExistCount = request.TotalCount = win.NewCount; } else // Если пришли все то закрываем { request.ExistCount = request.TotalCount; } }