private async void AtenderMateriais_Click(object sender, RoutedEventArgs e) { int[] handles = grdItens.GetSelectedRowHandles(); if (handles.Length > 0) { bool iNotify = false; foreach (var rowHandle in handles) { var selectedItem = grdItens.GetRow(rowHandle) as AtendimentoDTO; if (selectedItem.Quantidade == 0) { iNotify = true; } } if (iNotify) { CustomOKMessageBox.Show("Existem materiais na sua seleção que possuem a quantidade zerada.", "Atenção!", Window.GetWindow(this)); } else { var result = CustomOKCancelMessageBox.Show("Deseja mesmo atender os produtos selecionados?", "Atenção!", Window.GetWindow(this)); if (result == System.Windows.Forms.DialogResult.OK) { listaAtender = new ObservableCollection <AtendimentoDTO>(); foreach (var rowHandle in handles) { var selectedItem = grdItens.GetRow(rowHandle) as AtendimentoDTO; listaAtender.Add(selectedItem); } WaitBox wb = new WaitBox { Owner = Window.GetWindow(this) }; await Task.Run(() => { bll.AtenderProdutos(informacoesDTO, listaAtender); }); wb.Close(); CustomOKMessageBox.Show("Itens atendidos com sucesso!", "Sucesso!", Window.GetWindow(this)); Load(); } } } else { CustomOKMessageBox.Show("Você deve selecionar ao menos um produto para atender.", "Atenção!", Window.GetWindow(this)); } }