Рекурсивная функция для обновления - PullRequest
0 голосов
/ 01 мая 2020

У меня есть древовидный список, содержащий папки. Каждая папка может иметь файлы или другие папки внутри.

Мне нужна функция в C#, которая, если я изменяю видимость папки, автоматически должна изменять видимость папок и файлов под ней.

Не могли бы вы мне помочь?

Заранее спасибо.

1 Ответ

0 голосов
/ 01 мая 2020

Я не уверен, что вы отображаете свой список, и в зависимости от используемого вами пользовательского интерфейса и / или фреймворка, могут быть другие способы достичь этого, но простой подход к обходу структуры вашей папки будет использовать некоторую простую рекурсию , Пример:

public class Resource
{
    public string Name { get; set; }
    public string Type { get; set; }
    public bool Visible { get; set; }
    public List<Resource> Children { get; set; }
}


public class Form
{
    public void ChangeVisibility(Resource resource)
    {
        if (resource.Type != "Folder") return;

        resource.Visible = !resource.Visible;

        if (resource.Children.Any())
        {
            resource.Children.ForEach(ChangeVisibility);
        }
    }     
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...