我需要能够在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) 作为ListBoxItem; if(obj!= null){ obj.IsSelected = true; }
我尝试为WP7做同样的事情并注意到:
添加,我已经在列表框中显示的类上覆盖了GetHashCode和Equals。
想法。
答案 0 :(得分:1)
我不确定这是否是最佳方式,但这是我将如何做到这一点:
1)创建一个继承INotifyPropertyChanged接口的类(您可以通过google轻松找到如何使用它)。将您放入该类的ListBox中的信息包裹起来。
2)为该类创建一个IsSelected属性。
3)将类的IsSelected属性绑定到ListBox项的IsSelected属性。
4)现在你可以随时改变你创建的类的IsSelected属性,并且一切都会发生。