在 ListView.ItemSelected 中获取 ViewCell 内容
Getting ViewCell content in ListView.ItemSelected
我在 XAML 中遇到 ListView 问题。
我尝试通过打开动画实现 ExpandableList。为此,我想使用 ListView 和 StackLayout。
在 ItemSelected 事件中,我想向堆栈布局添加值,然后增加动画高度。但是如何获取对 ViewCell 的引用?
此外,有没有办法获取堆栈布局的计算高度并将 LayoutTo 用于此值?
将 IsSelected
属性 放在构成 ListView
的 ItemsSource
的任何 class 上并将其值设置为 true
在你的 ItemSelected
处理程序中。然后你可以subclass ViewCell
响应那个class中IsSelected
的变化。然后将您的 ViewCell
subclass 的实例放入您的 ListView
的 ItemTemplate
.
这种方法的主要优点是更好的封装——而不是从您的 ListView
修改 ViewCell
,您的 ViewCell
将自行更新。它还使您不必了解 ListView
.
的内部工作原理
查看 chapter 19 of Charles Petzold's book (PDF),了解有关使用 ListView
和 ViewCell
的大量有用信息。
我在 XAML 中遇到 ListView 问题。 我尝试通过打开动画实现 ExpandableList。为此,我想使用 ListView 和 StackLayout。
在 ItemSelected 事件中,我想向堆栈布局添加值,然后增加动画高度。但是如何获取对 ViewCell 的引用?
此外,有没有办法获取堆栈布局的计算高度并将 LayoutTo 用于此值?
将 IsSelected
属性 放在构成 ListView
的 ItemsSource
的任何 class 上并将其值设置为 true
在你的 ItemSelected
处理程序中。然后你可以subclass ViewCell
响应那个class中IsSelected
的变化。然后将您的 ViewCell
subclass 的实例放入您的 ListView
的 ItemTemplate
.
这种方法的主要优点是更好的封装——而不是从您的 ListView
修改 ViewCell
,您的 ViewCell
将自行更新。它还使您不必了解 ListView
.
查看 chapter 19 of Charles Petzold's book (PDF),了解有关使用 ListView
和 ViewCell
的大量有用信息。