【问题标题】:How can I expand my longListSelector item when clicked?单击时如何展开我的 longListSelector 项目?
【发布时间】:2014-10-13 18:24:50
【问题描述】:

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

【问题讨论】:

    标签: windows-phone-8 longlistselector


    【解决方案1】:

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


    你可以修改我的 ListBox 折叠代码来做你想做的事:ListBox Collapse。您需要将边框更改为<Grid>,然后循环遍历.Children 以隐藏/显示额外的文本块和图标。始终保存对当前 SelectedItem 的引用,这样当 SelectionChanged 事件触发时,您可以隐藏先前的选择,然后显示较新的 Selected Item。


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

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

    在选定(故事板)中,您将额外的文本块/图标的可见性更改为可见。
    在 NotSelected (StoryBoard) 中,您将额外的 Textblock/Icon 的 Visibility 更改为 Collapse。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-04-07
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多