我正在创建一个名为SystemTreeControl的控件,该控件是包含节点的树。 有2个依赖项属性:
RootNode:绑定到树的根节点
Filter:绑定到定义是否在树中显示节点的委托。
这是我的用法:
<controls:SystemTreeControl
RootNode="{Binding RootNode}"
Filter="{x:Static configuration:Configuration.DefaultFilter}"/>
设置RootNode属性后,将生成树。然后设置过滤器,因此必须清除树并再次生成。 这很耗时,而且没有优化。
请记住,过滤器也可以为null,因此我不能等待设置过滤器以生成树。
我发现的唯一解决方案是更改XAML中的属性顺序,因此将过滤器设置为在根节点之前:
<controls:SystemTreeControl
Filter="{x:Static configuration:Configuration.DefaultFilter}"
RootNode="{Binding RootNode}"/>
我不喜欢这种解决方案,因为优化工作是在控件之外完成的,因此使用此控件的开发人员必须意识到这一点。
有更好的方法吗?