一尘不染

如何克隆WPF对象?

c#

任何人都有一个很好的示例,该示例如何深度克隆WPF对象并保留数据绑定?


标记的答案是第一部分。

第二部分是您必须创建一个ExpressionConverter并将其注入序列化过程。有关详细信息,请参见http
:
//www.codeproject.com/KB/WPF/xamlwriterandbinding.aspx?fid=
1428301&
df=
90&
mpp=25&noise=3&sort=
Position&
view=
Quick&
select=2801571


阅读 474

收藏
2020-05-19

共1个答案

一尘不染

我做过的最简单的方法是使用XamlWriter将WPF对象保存为字符串。Save方法将序列化对象及其逻辑树中的所有子对象。现在,您可以创建一个新对象,并使用XamlReader加载它。

例如:将对象写入xaml(假设该对象是Grid控件):

string gridXaml = XamlWriter.Save(myGrid);

将其加载到新对象中:

StringReader stringReader = new StringReader(gridXaml);
XmlReader xmlReader = XmlReader.Create(stringReader);
Grid newGrid = (Grid)XamlReader.Load(xmlReader);
2020-05-19