【发布时间】:2011-01-06 19:19:14
【问题描述】:
我有一个简单的问题,我有一个ComboBox,其ItemsSource 绑定到一个相对昂贵的服务调用。
如果我禁用了有问题的ComboBox,绑定还会触发吗?如果是这样,我该怎么做才能确保只在真正需要时才拨打昂贵的电话?
【问题讨论】:
标签: wpf data-binding binding combobox
我有一个简单的问题,我有一个ComboBox,其ItemsSource 绑定到一个相对昂贵的服务调用。
如果我禁用了有问题的ComboBox,绑定还会触发吗?如果是这样,我该怎么做才能确保只在真正需要时才拨打昂贵的电话?
【问题讨论】:
标签: wpf data-binding binding combobox
您可能希望至少考虑修改ComboBox 的模板,以便它使用VirtualizingStackPanel,至少,只要您的服务调用一次获取一个项目。请参阅 this 以获得对这些问题的很好讨论。
编辑
回答您的实际问题:不,禁用 ComboBox 不会阻止它填充其项目。我通过实现一个集合类来确定这一点,将ComboBox 的ItemsSource 绑定到它的一个实例,并观察它为它的方法调用提供服务。如果启用了ComboBox,则会检索其项目。如果Visibility 是Collapsed,它们甚至会被检索到。我很惊讶;这根本不是我所期望的。
【讨论】: