private void btnAddShippingAddress_Click(object sender, RoutedEventArgs e) { CustomerVM vm = this.DataContext as CustomerVM; ShippingAddressInfoDetail shipping = new ShippingAddressInfoDetail(); IDialog dialog = Window.ShowDialog(ResCustomerMaintain.Title_ShippingAddress, shipping, (obj, args) => { if (args.DialogResult == DialogResultType.OK) { var shippingAddress = args.Data as ShippingAddressVM; shippingAddress.CustomerSysNo = vm.SysNo; var original = vm.ShippingAddressList.FirstOrDefault(p => p.SysNo == shippingAddress.SysNo); if (original == null) { facade.CreateShippingAddress(shippingAddress, (result) => { //默认的话把其它默认清空 if (result.IsDefault.Value) { vm.ShippingAddressList.ForEach(item => { item.IsDefault = false; }); } vm.ShippingAddressList.Add(result); }); } else { int index = vm.ShippingAddressList.IndexOf(original); vm.ShippingAddressList.RemoveAt(index); vm.ShippingAddressList.Insert(index, shippingAddress); } } }); shipping.Dialog = dialog; }