【发布时间】:2010-11-29 15:16:01
【问题描述】:
我将对象列表绑定到包含 TextBox 控件的 ItemsControl。
我希望能够根据绑定对象的背景颜色属性更改文本框背景颜色。
它与 INotifyPropertyChanged 界面完美配合,但是当我需要更新 1000 个对象时,我猜它需要大量时间,因为它需要一个一个地更新控件。
是否有人给我提示,让我说,更新我所有的对象背景颜色,而不是一次更新绑定而不是逐个对象?
谢谢,
垫子
【问题讨论】:
-
您是使用“BackgroundColor”属性名称还是使用 null 触发 PropertyChanged 事件?
-
一般来说,您应该使用 ItemTemplate 根据其中的属性设置项目的背景颜色,而不是将颜色显式地作为您绑定到的对象中的颜色。另请注意,使用从 VirtualizingStackPanel 派生的控件(例如 ListBox)而不是 ItemsControl 可以免费获得 UI 虚拟化(除非用户可以看到它们,否则它不会更新所有 UI 对象)
-
我正在使用属性名称“BackgroundColor”触发 PropertyChanged 事件
标签: wpf list binding properties