当我点击longListSelector中的项目时,我想在我的数据模板中添加一个图标和另一个文本块。此外,当点击另一个项目时,我想从之前选择的项目中删除此图标和文本块,并展开新选择的项目。我怎样才能做到这一点?
答案 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")
这将完成您想要的整个互动。