单击时如何展开longListSelector项?

时间:2014-10-13 18:24:50

标签: windows-phone-8 longlistselector

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

1 个答案:

答案 0 :(得分:1)

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


您可以修改我的ListBox折叠代码以执行您想要的操作:ListBox Collapse。您需要将边框更改为<Grid>,然后循环浏览.Children以隐藏/显示额外的文本块和图标。始终保存对当前SelectedItem的引用,以便在SelectionChanged事件触发时,您可以隐藏上一个选择,然后显示较新的Selected Item。


选项2:创建一个ItemControl,您可以将其用作LongListSelector的Item.DataTemplate

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

  

在Selected(StoryBoard)中,您将额外的Textblock / Icon的可见性更改为Visible   在NotSelected(StoryBoard)中,您将额外的Textblock / Icon的可见性更改为折叠。

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

如果当前项目是SelectedItem,则VisualStateManager.GoToState(your_control, "Selected")否则VisualStateManager.GoToState(your_control, "NotSelected")

这将完成您想要的整个互动。