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));
}

如果该类中有其他类实例,它是否也会复制它们而不删除数据绑定实例?它将替换对嵌套对象的引用而不影响对嵌套属性的数据绑定。