在 ListView.ItemSelected 中获取 ViewCell 内容

Getting ViewCell content in ListView.ItemSelected

我在 XAML 中遇到 ListView 问题。 我尝试通过打开动画实现 ExpandableList。为此,我想使用 ListView 和 StackLayout。

在 ItemSelected 事件中,我想向堆栈布局添加值,然后增加动画高度。但是如何获取对 ViewCell 的引用?

此外,有没有办法获取堆栈布局的计算高度并将 LayoutTo 用于此值?

IsSelected 属性 放在构成 ListViewItemsSource 的任何 class 上并将其值设置为 true 在你的 ItemSelected 处理程序中。然后你可以subclass ViewCell 响应那个class中IsSelected的变化。然后将您的 ViewCell subclass 的实例放入您的 ListViewItemTemplate.

这种方法的主要优点是更好的封装——而不是从您的 ListView 修改 ViewCell,您的 ViewCell 将自行更新。它还使您不必了解 ListView.

的内部工作原理

查看 chapter 19 of Charles Petzold's book (PDF),了解有关使用 ListViewViewCell 的大量有用信息。