Другой способ удалить элемент из ListView, не удаляя его содержимое? - PullRequest
0 голосов
/ 22 октября 2010

Можно ли удалить элемент из ListView, не удаляя его 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];

К сожалению, мне не разрешено на самом деле удалять данные из списка. Таким образом, нужно полагаться на видимость

Итак, можно ли удалить элемент из ListView, не удаляя его content[]?

если нет, какие-либо предложения о том, как этого можно достичь?

1 Ответ

0 голосов
/ 26 октября 2010

Нет.Но если вы хотите, чтобы он вел себя так, не удаляя список.Вы можете добавить свойство в свой CustomNode.Затем проверьте это свойство при добавлении данных в список.

т.е.

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

Затем в вашем ItemList выполните:

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

Таким образом, вы фактически не удаляетеданные из customNodes, но только решает, какие из них должны быть отображены в ItemList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...