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

另一种不删除列表视图中的项目内容的方法?

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

    content[] ?

    远离的 让它生效。相反,它只是在数据之间提供了一个空白空间。

        var customNodes : Foo[] = [Foo{bar:"help"}, 
                           Foo{bar:"me"}, Foo{bar:"please"}];   
        ListView { 
          ...
          contents : bind customNodes;
        }
    

    现在,如果我改变 customNodes[1].visible = false; 节点未按预期显示。

    Foo[1] 仍然在 customNodes[0] customNodes[2] 导致节点之间的间隙。

    这可以通过执行以下语句来完成:

        delete customNodes[1];
    

    不幸的是,我不能 事实上

    所以,是否可以通过不删除列表视图中的项 内容[] ?

    如果没有,有什么建议可以实现这一点吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   Joopiter    14 年前

    不。但如果你想让它表现得像那样,而不真正删除列表的话。可以将属性添加到CustomNode。然后在向列表中添加数据时检查该属性。

        var customNodes : Foo[] = [Foo{bar:"help" isDismissed : false}, 
                      Foo{bar:"me" isDismissed : true}, 
                      Foo{bar:"please" isDismissed : false}]; 
    

        ItemList{ 
           content : bind [
                    for (node in CustomNodes) 
                       if(node.isDismissed) [] else [node]
           ]
        }
    

    这样,实际上并不是从customNodes中删除数据,而是决定应该在ItemList中呈现哪些数据。

    推荐文章