【问题标题】:How can I clone a Binding object in Silverlight?如何在 Silverlight 中克隆 Binding 对象?
【发布时间】:2012-11-29 20:42:04
【问题描述】:
  1. 在 Silverlight 4.0 中制作 Binding 对象的完整单独副本需要什么?
  2. 仅复制其每个可设置属性就足够了吗?

更新

据我所知,第二个问题的答案是否定的。因为在绑定上设置属性会触发它的状态,一旦初始化就无法更改。例如,尽管没有什么可以阻止您设置 Source 和 RelativeSource 属性,但您会在运行时遇到异常,因为一旦设置了 Source 属性,您就无法再设置 RelativeSource。与 ElementName 属性相同的是,即使默认情况下它已经拥有 NULL,也无法将其分配给 NULL。

【问题讨论】:

    标签: c# silverlight xaml data-binding


    【解决方案1】:

    您是否尝试在 Silverlight 中克隆 POCO 对象?如果是这样,你可以实现这样的东西:

    public static T Clone<T>(T source)
    {
    
        DataContractSerializer serializer = new DataContractSerializer(typeof(T));
        using (MemoryStream ms = new MemoryStream())
        {
            serializer.WriteObject(ms, source);
            ms.Seek(0, SeekOrigin.Begin);
            return (T)serializer.ReadObject(ms);
        }
    } 
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-19
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 2012-11-17
    • 2010-09-07
    • 2012-12-07
    相关资源
    最近更新 更多