void threadSelect_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            List <SpecialTransferModel> list = e.Result as List <SpecialTransferModel>;

            foreach (SpecialTransferModel item in list)
            {
                SpecialTransferViewModel viewItem = new SpecialTransferViewModel
                {
                    SpecialTransferId = item.SpecialTransferId,
                    WorkerId          = item.WorkerId,
                    TransferType      = item.TransferType,
                    DestinationLineId = item.DestinationLineId,
                    Date = item.Date,
                    Time = item.Time,
                };

                SpecialTransferTypeModel type = typeList.Where(t => t.TransferType == item.TransferType).FirstOrDefault();
                if (type != null)
                {
                    viewItem.TransferName = type.Name;
                }

                LineModel line = lineList.Where(l => l.LineId == item.DestinationLineId).FirstOrDefault();
                if (line != null)
                {
                    viewItem.DestinationLineName = line.Name;
                }

                specialTransferViewList.Add(viewItem);
            }
            dgMain.ItemsSource = specialTransferViewList;

            btnSearch.IsEnabled = true;
            this.Cursor         = null;
        }
        void threadDelete_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            bool result = (e.Result as bool?).Value;

            if (result == true)
            {
                SpecialTransferViewModel item = dgMain.CurrentItem as SpecialTransferViewModel;
                specialTransferViewList.Remove(item);
            }
            this.Cursor = null;
        }
 private void btnDelete_Click(object sender, RoutedEventArgs e)
 {
     if (MessageBox.Show("Confirm?", this.Title, MessageBoxButton.OKCancel, MessageBoxImage.Question) == MessageBoxResult.OK)
     {
         SpecialTransferViewModel item = dgMain.CurrentItem as SpecialTransferViewModel;
         if (item != null && threadDelete.IsBusy == false)
         {
             this.Cursor = Cursors.Wait;
             threadDelete.RunWorkerAsync(item.SpecialTransferId);
         }
     }
 }