private void Add_Item_Click(object sender, RoutedEventArgs e)
        {
            BindingExpression itemQuantity = tbItemCount.GetBindingExpression(TextBox.TextProperty);

            itemQuantity.UpdateSource();
            if (!itemQuantity.HasValidationError)
            {
                if (ChangeItem)
                {
                    item_list sel_item = (item_list)itemDatagrid.SelectedItem;
                    int       index    = itemDatagrid.Items.IndexOf(sel_item);
                    int       quantity2;
                    int.TryParse(tbItemCount.Text, out quantity2);
                    sel_item.quantity = quantity2;
                    itemDatagrid.Items.RemoveAt(index);
                    itemDatagrid.Items.Insert(index, sel_item);
                    ChangeItem        = false;
                    tbItemSearch.Text = "";
                    tbItemCount.Text  = "";
                    return;
                }
                var obj = atbItemSearch.SelectedItem as string;
                int quantity;
                int.TryParse(tbItemCount.Text, out quantity);
                item newItem = null;
                if (obj != null)
                {
                    newItem = item.SelectById(items.FirstOrDefault(h => h.Value.Equals(obj)).Key);
                }
                if (newItem != null)
                {
                    var newItemList = EntityFactory.CreateItemList(newItem.id, quantity);
                    itemDatagrid.ItemsSource = null;
                    itemDatagrid.Items.Add(newItemList);
                    tbItemSearch.Text = "";
                    tbItemCount.Text  = "";
                }
            }
        }
        private void btnUpdateItem_Click(object sender, RoutedEventArgs e)
        {
            DataGridRow dgr       = null;
            var         visParent = VisualTreeHelper.GetParent(e.OriginalSource as FrameworkElement);

            while (dgr == null && visParent != null)
            {
                dgr       = visParent as DataGridRow;
                visParent = VisualTreeHelper.GetParent(visParent);
            }
            if (dgr == null)
            {
                return;
            }

            var rowIdx = dgr.GetIndex();

            item_list itemToUpdate = (item_list)itemDatagrid.Items.GetItemAt(rowIdx);

            atbItemSearch.SelectedItem = itemToUpdate.item;
            tbItemSearch.Text          = itemToUpdate.item.name;
            tbItemCount.Text           = itemToUpdate.quantity.ToString();
            ChangeItem = true;
        }