我需要能夠手動在Windows Phone的選擇,ListBox項7.我的列表框包含使用WrapPanel手動選擇一個ListBoxItem
<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) 作爲ListBoxItem的; if(obj!= null){obj.IsSelected = true; }
我試圖做同樣的事情了WP7,並注意到:
- ListBox.ItemContainerGenerator不再公開StatusChanged事件。而是有一個ItemsChanged事件,所以我改爲處理它。
- 但是,當我調用ItemContainerGenerator.ContainerForitem(objInstance)或者甚至ItemContainerGenerator.ContainerFromIndex()時,我總是得到空值。
剛剛添加,我已經在列表框中顯示的類上覆蓋了GetHashCode和Equals。
想法請。
好主意,謝謝。除了我這樣做; ,異常由XamlParser拋出。 –
如果在''中這樣做,它將不起作用,因爲IsSelected不是ListBox的屬性。您必須使用ItemTemplates在實際的ListBox中應用該屬性。 – mostruash