private void dgUpperComponent_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            UpperComponentRawMaterialViewModel upperComponentView = e.Row.Item as UpperComponentRawMaterialViewModel;

            if (upperComponentView == null)
            {
                return;
            }
            int columnIndex = e.Column.DisplayIndex;

            if (colDatetimeList.Contains(columnIndex))
            {
                TextBox  txtElement = (TextBox)e.EditingElement as TextBox;
                DateTime etd        = TimeHelper.Convert(txtElement.Text);
                if (String.IsNullOrEmpty(txtElement.Text) == false && etd == dtNothing)
                {
                    txtElement.Foreground = Brushes.Red;
                    txtElement.Text       = "!";
                    txtElement.SelectAll();
                }
                else
                {
                    upperComponentView.ETDReal = etd;
                }
            }
        }
        private void btnAddMore_Click(object sender, RoutedEventArgs e)
        {
            UpperComponentRawMaterialViewModel upperComponentRawMaterialView = new UpperComponentRawMaterialViewModel
            {
                UpperComponents = upperComponentList.FirstOrDefault(),
                ETD             = "",
            };

            upperComponentRawMaterialViewList.Add(upperComponentRawMaterialView);
            dgUpperComponent.ItemsSource = null;
            dgUpperComponent.ItemsSource = upperComponentRawMaterialViewList;
        }
        private void bwLoadData_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
        {
            colUpperComponents.ItemsSource = upperComponentList;
            foreach (var upperComponentRawMaterial in upperComponentRawMaterialList)
            {
                UpperComponentRawMaterialViewModel upperComponentRawMaterialView = new UpperComponentRawMaterialViewModel()
                {
                    UpperComponents = upperComponentList.Where(w => w.UpperComponentID == upperComponentRawMaterial.UpperComponentID).FirstOrDefault(),
                    ETD             = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", upperComponentRawMaterial.ETD),
                    ETDReal         = upperComponentRawMaterial.ETD,
                };
                upperComponentRawMaterialViewList.Add(upperComponentRawMaterialView);
            }

            dgUpperComponent.ItemsSource = null;
            dgUpperComponent.ItemsSource = upperComponentRawMaterialViewList;
            btnAddMore.IsEnabled         = true;
            btnSave.IsEnabled            = true;
            this.Cursor = null;
        }