Windows phone 8 单击时如何展开我的longListSelector项?

Windows phone 8 单击时如何展开我的longListSelector项?,windows-phone-8,longlistselector,Windows Phone 8,Longlistselector,当点击longListSelector中的项目时,我想在我的数据模板中添加一个图标和另一个文本块。另外,当点击另一个项目时,我想从以前选择的项目中删除此图标和文本块,并展开新的选定项目。我怎样才能做到这一点 选项1(通过代码隐藏进行修改) 您可以修改我的列表框折叠代码以执行所需操作:。您需要将边框更改为,然后在.Children中循环以隐藏/显示额外的文本块和图标。始终保存对当前SelectedItem的引用,以便在触发SelectionChanged事件时,可以隐藏以前的选择,然后显示较新的

当点击longListSelector中的项目时,我想在我的数据模板中添加一个图标和另一个文本块。另外,当点击另一个项目时,我想从以前选择的项目中删除此图标和文本块,并展开新的选定项目。我怎样才能做到这一点

选项1(通过代码隐藏进行修改)


您可以修改我的列表框折叠代码以执行所需操作:。您需要将边框更改为
,然后在
.Children
中循环以隐藏/显示额外的文本块和图标。始终保存对当前SelectedItem的引用,以便在触发SelectionChanged事件时,可以隐藏以前的选择,然后显示较新的选定项


选项2:创建可作为LongListSelector的Item.DataTemplate的一部分使用的ItemControl

使用此方法,您希望创建自己的VisualState(Selected、NotSelected..或任何您想要的)

在所选(情节提要)中,您可以将额外的文本块/图标的可见性更改为可见。
在NotSelected(故事板)中,将额外文本块/图标的可见性更改为折叠

然后,当LongListSelector上的SelectionChanged事件发生时,循环遍历ItemSources并将其与SelectedItem进行比较

如果当前项是SelectedItem,则
VisualStateManager.GoToState(您的_控件,“已选定”)
else
VisualStateManager.GoToState(您的_控件,“未选定”)

这将完成您想要的整个交互