C# 将类实例的每个字段复制到另一个类实例以保持数据绑定
我有一个类的类实例C# 将类实例的每个字段复制到另一个类实例以保持数据绑定,c#,uwp,C#,Uwp,我有一个类的类实例Poste(我们称之为a),它与我的接口有一个数据绑定 我想做的是复制另一个Poste类实例(我称之为B)的每个属性,而不丢失A与我的接口的数据绑定 我第一次天真地做了: //已经创建了一个 Poste B=新Poste(); A=B; 当然,它不起作用,因为它通过了引用 之后,我听说了浅拷贝和深拷贝,所以我尝试将B类实例的深拷贝到a。 (用于互联网上的深度复制课程,正在运行) A=ObjectExtensions.Copy(B)//将B的深度复制到a中 我原以为它会在同一
Poste
(我们称之为a
),它与我的接口有一个数据绑定
我想做的是复制另一个Poste
类实例(我称之为B
)的每个属性,而不丢失A
与我的接口的数据绑定
我第一次天真地做了:
//已经创建了一个
Poste B=新Poste();
A=B;
当然,它不起作用,因为它通过了引用
之后,我听说了浅拷贝
和深拷贝
,所以我尝试将B
类实例的深拷贝到a
。
(用于互联网上的深度复制课程,正在运行)
A=ObjectExtensions.Copy(B)//将B的深度复制到a中
我原以为它会在同一个A
实例上复制B
,但数据绑定仍然无法工作,因为没有触发INotifyPropertyChanged
那么,有没有简单的方法来复制类的每个字段和属性
在不更改当前实例和丢失数据绑定的情况下
我想做的是复制另一个Poste
类实例(我称之为B
)的每个属性,而不丢失A
与我的接口的数据绑定
然后您应该设置A
的现有实例的每个属性。您可以使用反射来执行此操作:
PropertyInfo[] properties = A.GetType().GetProperties();
foreach (var property in properties)
{
if (property.CanWrite)
property.SetValue(A, property.GetValue(B));
}
如果该类中有其他类实例,它是否也会复制它们而不删除数据绑定实例?它将替换对嵌套对象的引用而不影响对嵌套属性的数据绑定。