WPF иерархический фильтр данных - PullRequest
0 голосов
/ 07 мая 2019

у меня в ViewModel

public string SearchPattern
{
    get
    {
        return searchPattern;
    }

    set
    {
        searchPattern = value;
    }
}

private bool UserFilter(object item)
{
    return (item as Node).Name.Contains(SearchPattern);
}

public ICollectionView YourFilteredCollection
{
    get
    {
        var source = CollectionViewSource.GetDefaultView(model.Items);
        source.Filter = UserFilter;
        return source;
    }
}

YourFilteredCollection зависит от Model свойства

 public ObservableCollection<Node> Items { get; set; }

Чем я решил отфильтровать подэлементы узла YourFilteredCollectionNodes

public class Node
{
    public string Name { get; set; }

    public ObservableCollection<Node> Nodes { get; set; }

    public ICollectionView YourFilteredCollectionNodes
    {
        get
        {
            var source = CollectionViewSource.GetDefaultView(Nodes);
            if (source != null)
            {
                source.Filter = UserFilter;
            }
            return source;
        }
    }

    private bool UserFilter(object item)
    {
        //return (item as Node).Name.Contains(SearchPattern);
        return true;
    }
}

Но в этом случае как можно передать SearchPattern из ViewModel в ObservableCollection элемент, который находится в модели ??

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