【问题标题】:Performance Considerations - VisualState vs Toggling Visibility using AttachedProperty性能注意事项 - VisualState 与使用 AttachedProperty 切换可见性
【发布时间】:2013-11-10 01:21:16
【问题描述】:

目前,我们在控件的 ControlTemplate 中有一个可视元素,其 Visibility 绑定到附加属性,并在满足特定条件时在控件上设置。当附加属性为 true 时,我们使元素可见(边框)并在值为 false 时折叠它。

另一种方法是通过向控件添加一些自定义状态来更改控件的状态。

考虑加载大量数据的网格(例如,Telerik 的 RadGridView 等 - 在 GridViewCell 上设置附加属性以使其 ControlTemplate 元素之一可见/单元格状态更改)等场景,方法表现更好?

【问题讨论】:

    标签: c# wpf attached-properties visualstatemanager radgridview


    【解决方案1】:

    附加属性的方式肯定没问题。如果您想创建自定义视觉状态,您很可能最终会做同样的事情 - 不是创建附加属性并附加到 GridViewCell,而是扩展控件以在您设置的位置具有相同的属性和新的视觉状态BorderCollapsedVisibility,当属性条件满足时触发状态。

    控件RadGridView内置了虚拟化,我觉得你完全不用担心性能问题。但我想创建附加属性可能会更简单一些,而扩展控件可能会更灵活一些——比如说,如果你想在新状态下做一些繁重的动画,你可以在 Blend 中轻松完成。

    【讨论】:

      猜你喜欢
      • 2012-08-22
      • 2011-07-09
      • 2010-11-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多