XAML属性设置顺序优化

时间:2019-04-15 11:56:41

标签: c# wpf xaml data-binding filtering

我正在创建一个名为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}"/>

我不喜欢这种解决方案,因为优化工作是在控件之外完成的,因此使用此控件的开发人员必须意识到这一点。

有更好的方法吗?

0 个答案:

没有答案