代码之家  ›  专栏  ›  技术社区  ›  invertedSpear

当XML被附加到时,我能让ChangeWatcher启动吗?

  •  0
  • invertedSpear  · 技术社区  · 14 年前

    所以我需要在我的应用程序中添加一个撤销函数,我发现了这个漂亮的changewatcher类,但它并没有完全按照我的要求执行,我希望有人知道如何操作。

    ChangeWatcher似乎监视变量引用的分配。所以当我说:

    myXML = <xml/>
    

    它的功能很好很好,但是当我说:

    myXML.appendChild(thisOtherXMLVar)
    

    我什么也得不到,即使变量改变了引用,所以changewatcher不会触发函数。

    那么,有人知道如何让changewatcher获取变量的所有更改吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Lance Pollard    14 年前

    ChangeWatcher是一个非常酷的类。但除非你试图观察的属性是[可绑定的],否则它不会工作。

    如果你是 myXML 变量是可绑定的,当您将其设置为XML值时,它将分派一个事件(默认为 propertyChange )ChangeWatcher为已声明的任何[Bindable]事件向对象添加事件侦听器。它通过获取该变量的可绑定元数据来实现这一点。

    但是XML类本身没有任何可绑定的内容,所以调用 appendChild 不会发送任何事件,更改观察程序也不会工作。

    根据您的注释进行更新,您只需对xml进行所有更改,然后重置变量。这将导致变更观察程序注册更新。

    希望能帮上忙, 兰斯