Свойства XAML задают оптимизацию порядка - PullRequest
1 голос
/ 15 апреля 2019

Я создаю элемент управления с именем 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}"/>

Мне не нравится это решение, поскольку работа по оптимизации выполняется вне элемента управления, а разработчикПри использовании этого элемента управления необходимо знать об этом.

Есть ли лучший способ сделать это?

...