【发布时间】:2012-01-17 22:53:10
【问题描述】:
我需要能够在 Windows Phone 7 中手动选择 ListBox 项目。我的 ListBox 包含以下使用 WrapPanel 的样式
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<[WP7Panels:WrapPanel][2] />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled" />
</Style>
这样我就可以实现包裹效果了。
当我在 WPF 中执行此操作时,我订阅了 ListBox.ItemContainerGenerator.StatusChanged 事件。在这个事件的事件处理程序中,我使用了:
var obj = ListBox.ItemContainerGenerator.ContainerForItem(objInstance) 作为列表框项;如果(obj!= null){ obj.IsSelected=真; }
我尝试为 WP7 做同样的事情并注意到:
- ListBox.ItemContainerGenerator 不再公开 StatusChanged 事件。而是有一个 ItemsChanged 事件,所以我处理了这个。
- 但是,当我调用 ItemContainerGenerator.ContainerForitem(objInstance) 甚至 ItemContainerGenerator.ContainerFromIndex() 时,我总是得到 null。
补充一点,我已经在列表框中显示的类上覆盖了 GetHashCode 和 Equals。
请出主意。
【问题讨论】:
标签: windows-phone-7 listboxitem