我有很多样式定义在我的网格中(基于状态的单元格颜色等)。目前,我使用DataTriggers来设置适当的颜色。我希望改进我的应用程序的性能,并认为大量的样式可能会导致减速(由于数据不断变化,需要重新计算/刷新样式)。使用转换器进行数据绑定是否比使用DataTriggers更好?
如果两种方法都可以实现目标,是否存在性能差异?我不熟悉背后正在发生什么,所以无法确定。
我有很多样式定义在我的网格中(基于状态的单元格颜色等)。目前,我使用DataTriggers来设置适当的颜色。我希望改进我的应用程序的性能,并认为大量的样式可能会导致减速(由于数据不断变化,需要重新计算/刷新样式)。使用转换器进行数据绑定是否比使用DataTriggers更好?
如果两种方法都可以实现目标,是否存在性能差异?我不熟悉背后正在发生什么,所以无法确定。
在您的情况下可能发生类似的事情,只是由于触发器的数量(或如果您进行了转换,则为转换)。
作为概念证明,您可以考虑将视图模型包装在“WPF ViewModel”中,该模型公开颜色和其他特定于WPF的值本身,而不是某个值,运行时可以通过调用触发器和IValueConverters
确定颜色。然后,您将能够直接绑定到它,并且既不使用触发器也不使用转换器。我很想听听结果。