C# 将所有数据从一个用户控件复制到同一类型的另一个用户控件
我想使用复选框SameAsPrevious将所有数据从HomeAddressUC传输到PermanentAddressUC 每个UserControl都有相同的类型(AddressUserControl) 填充HomeAddressUC的数据源代码如下C# 将所有数据从一个用户控件复制到同一类型的另一个用户控件,c#,winforms,user-controls,C#,Winforms,User Controls,我想使用复选框SameAsPrevious将所有数据从HomeAddressUC传输到PermanentAddressUC 每个UserControl都有相同的类型(AddressUserControl) 填充HomeAddressUC的数据源代码如下 private void SetTabPageDetails(string tabPageName, CustomerDetails customerDetailsCache) { customerDetailsCache = //
private void SetTabPageDetails(string tabPageName, CustomerDetails customerDetailsCache)
{
customerDetailsCache = // calling stored procedure
PermanentAddressUC.SetDetails(customerDetailsCache.Addresses[0]);
}
该数据源的作用域仅限于Up-it方法SetTabPageDetails()
我尝试在复选框上实现的逻辑已更改事件为
if (chkSameAsPervious.Checked)
{
foreach (var addressCtl in from Control ctl in this.ADDRESS_TAB.Controls select ctl as BankSys24.UI.UserControls.AddressUserControl)
{
if (addressCtl.GroupBoxText == "Mailing Address")
{
// want to do something here
}
}
}
我试着去关注相关的链接
它说使用第三个公共用户控件创建一个容器或接口
优化的方法是什么?如果所有字段都相同,为什么需要为“家庭”和“邮寄地址”设置不同的用户控件 您可以同时使用一个用户控件,并为将组名设置为“家庭地址”或“邮寄地址”创建属性 您可以有两个公共方法通过传递地址对象来设置地址字段,并通过读取表单的字段来获取地址对象 在复选框的check change事件中,您可以通过调用home address用户控件即时获取地址方法来获取地址对象,然后您可以通过调用set address方法通过传递地址对象来设置邮寄地址用户控件即时的详细信息 希望这有帮助好的,谢谢你的帮助 我找到的可能的最短解决方案如下:
if (chkSameAsPervious.Checked)
{
MailingAddressUC.SetDetails(PermanentAddressUC.GetDetails() as BankSys24.DTO.Customer.Address);
}
在哪里
public object GetDetails()
{
return new BankSys24.DTO.Customer.Address { //data };
}
及
Getdetails将所有数据映射为可直接传递给SetDetails()的容器类对象
谢谢
public void SetDetails(object input)
{
//intermediate Object
if (details != null)
{
//Mapping
}