private void dgItems_BeginningEdit(object sender, DataGridBeginningEditEventArgs e) { OptionalAccessoriesItemVM currentItem = e.Row.DataContext as OptionalAccessoriesItemVM; if (currentItem.IsMasterItemB && e.Column.ClipboardContentBinding.Path.Path != "Quantity") { e.Cancel = true; } }
private void btnAdd_Click(object sender, RoutedEventArgs e) { if (!ValidationManager.Validate(this.gridAddProduct) || !ValidationManager.Validate(this.gridBasicInfo)) { return; } OptionalAccessoriesItemVM itemVM = (sender as Button).DataContext as OptionalAccessoriesItemVM; if (!itemVM.ProductSysNo.HasValue) { Window.Alert(ResComboSaleMaintain.Warning_NoItems, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } if (ValidationManager.Validate(this.gridAddProduct)) { if (this.VM.Items.FirstOrDefault(p => p.ProductSysNo == itemVM.ProductSysNo) != null) { Window.Alert(ResComboSaleMaintain.Warning_SaleItemExists, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } var productInfo = this.ucProductPicker.SelectedProductInfo; string productID = this.ucProductPicker.ProductID; itemVM.ProductID = productID; #region 折扣比例 //var itemDPTmp = 0m; //decimal.TryParse(TxtItemDiscountPercent.Text, out itemDPTmp); //itemVM.DiscountPercent = (itemDPTmp / 100).ToString("0.00"); #endregion if (productInfo != null) { itemVM.ProductName = productInfo.ProductName; itemVM.ProductUnitCost = productInfo.UnitCost; itemVM.ProductCurrentPrice = productInfo.CurrentPrice; itemVM.MerchantName = productInfo.MerchantName; } var t = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinarySerialize(this.VM); OptionalAccessoriesVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinaryDeserialize <OptionalAccessoriesVM>(t); //DeepClone方法要报错 //ComboVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.DeepClone<ComboVM>(this.VM); clonedVM.Items.Add(itemVM); //调用Service Check,不能用VM,而要用他的深拷贝对象 new OptionalAccessoriesFacade(this).CheckOptionalAccessoriesItemIsPass(clonedVM, (obj, args) => { if (args.Result != null && (args.Result.Count > 0)) { string msg = args.Result.Join("\r\n"); Window.Alert(msg, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } //To Fix bug,如果不深拷贝一次,则添加到列表中的Item不会显示ProductID var str = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinarySerialize(itemVM); var clonedItemVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinaryDeserialize <OptionalAccessoriesItemVM>(str); this.VM.Items.Add(clonedItemVM); this.gridAddProduct.DataContext = new OptionalAccessoriesItemVM(); this.CheckBox_Click(this.cbIsMaster, e); }); } }