Мне нужно иметь возможность вручную выбирать элементы ListBox в Windows Phone 7. Мой 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>
, чтобы я мог реализовать упаковкуeffect.
Когда я сделал это в WPF, я подписался на событие ListBox.ItemContainerGenerator.StatusChanged.В обработчике этого события я использовал:
var obj = ListBox.ItemContainerGenerator.ContainerForItem (objInstance) as ListBoxItem;if (obj! = null) {obj.IsSelected = true;}
Я попытался сделать то же самое для WP7 и заметил, что:
- ListBox.ItemContainerGenerator больше не предоставляет событие StatusChanged.Вместо этого есть событие ItemsChanged, поэтому я обработал его.
- Однако, когда я вызываю ItemContainerGenerator.ContainerForitem (objInstance) или даже ItemContainerGenerator.ContainerFromIndex (), я всегда получаю ноль.
Просто добавлю, я переопределил GetHashCode и Equals для класса, который представлен в списке.
Идеи, пожалуйста.