【问题标题】:Xamarin.Forms - Set Height of ListView Cell On the FlyXamarin.Forms - 即时设置 ListView 单元格的高度
【发布时间】:2016-09-20 18:46:11
【问题描述】:

我正在开发一个 Xamarin.Forms MVVM 项目(在代码中,而不是 XAML),并且我有一个 ListView,其中每个单元格的高度不同 (HasUnevenRows = true)。在每个单元格中,我希望能够单击一个按钮并在单元格中添加或删除一些内容。我可以这样做,但单元格的高度不会根据内容调整,直到我将项目滚动到视图之外然后再回到视图中。

根据我在网上阅读的内容,不可能使单元格的高度自动调整到其内容。所以我接下来要尝试的是在运行中明确设置单元格的高度。 在我当前的设置中,我有 3 个文件:

  • MyPage.cs - 包含 var myListView = new ListView { HasUnevenRows = true, ItemTemplate = new DataTemplate(() => new MyViewCell())
  • MyViewCell.cs - 包含 myListView 中使用的 ViewCell 模板,以及我想绑定到视图模型中的命令以添加内容并显式更改视图单元格高度的按钮。
  • MyViewModel.cs - 包含添加/删除内容和更改视图单元格高度的命令。

问题:在 View Model (MyViewModel.cs) 中,如何访问 ListView 中的特定 ViewCell 以更改其高度?

【问题讨论】:

    标签: ios listview xamarin xamarin.forms uicollectionviewcell


    【解决方案1】:

    在绑定到 ListView 的项目中,在项目模型中具有 height 属性,并将其绑定到 ViewCell HeightRequest。然后,您可以在视图中引用它而无需任何代码。

    【讨论】:

    • 我试过这样做 - 在我的 ViewCell 构造函数中,我尝试了this.SetBinding<MyViewModel>(ViewCell.HeightRequestProperty, model => model.ViewCellHeight);,但它说 ViewCell 不包含 HeightRequestProperty 的定义...我也尝试了 VisualElement.HeightRequestProperty,但随后它崩溃了出现“无效转换”错误。
    猜你喜欢
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 2012-08-08
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    相关资源
    最近更新 更多