Я создаю элемент управления с именем SystemTreeControl, который представляет собой дерево, содержащее узлы.Существует 2 свойства зависимости:
RootNode: привязан к корневому узлу дерева
Фильтр: привязан к делегату, который определяет, является лиузел должен отображаться в дереве или нет.
Вот как я его использую:
<controls:SystemTreeControl
RootNode="{Binding RootNode}"
Filter="{x:Static configuration:Configuration.DefaultFilter}"/>
Когда свойство RootNode установлено, дерево генерируется.Затем фильтр устанавливается, поэтому дерево должно быть очищено и сгенерировано заново.Это отнимает много времени и не оптимизируется.
Имейте в виду, что фильтр также может быть нулевым, поэтому я не могу дождаться, когда будет установлен фильтр для генерации дерева.
Единственное решение, которое я нашелсостоит в изменении порядка свойств в XAML, поэтому фильтр устанавливается перед корневым узлом:
<controls:SystemTreeControl
Filter="{x:Static configuration:Configuration.DefaultFilter}"
RootNode="{Binding RootNode}"/>
Мне не нравится это решение, поскольку работа по оптимизации выполняется вне элемента управления, а разработчикПри использовании этого элемента управления необходимо знать об этом.
Есть ли лучший способ сделать это?