【问题标题】:Xamarin Forms conditional formatting within a ListViewListView 中的 Xamarin Forms 条件格式
【发布时间】:2018-04-17 08:57:19
【问题描述】:

在父页面的代码隐藏中,怎么说呢,

foreach(label in the ListView)
{
   if(label.Text == "something")
   {
        //do some formatting
   }
}

我认为这应该在 OnAppearing 的覆盖范围内,但我不确定语法。

谢谢

更新: 针对cmets,ListView有2个标签,我想说,如果label1 = "x",在label2上做具体的格式化。

希望这更清楚一点

【问题讨论】:

  • 解冻。您想在呈现后更改列表视图的每个单元格吗?也许如果您详细说明您的具体案例,我们可以提供帮助。通常行为和/或转换器足以满足这种需求,但现在你的问题似乎太宽泛了。
  • 您是否尝试过覆盖 SetupContent(Cell, Index) 并在那里执行格式化?

标签: c# xaml listview xamarin.forms


【解决方案1】:

ListView 中有一个名为TemplatedItems 的属性返回一个ViewCell,我们可以从这个 ViewCell 中获取我们拥有的所有视图(如果您使用模板可能会有点不同)。

    foreach (ViewCell myViewCell in mylist.TemplatedItems)
    {

        Label myLabel = (Label) myViewCell.View;
        if (myLabel.Text == "smth")
        {
            //do some formatting

        }
    } 

【讨论】:

  • 似乎是我需要的,谢谢,在 Label myLabel 行上获得 .InvalidCastException,但我相信我会解决的...
  • 这意味着您在 ViewCell 中有许多视图,您可以使用不同的属性来使用它们,例如,如果您在其中有一个网格,您需要先将其转换为网格,然后获取 Children(Label)从这个网格。我建议调试并查看 myViewCell 的值和结构,这将使其更容易
猜你喜欢
  • 2016-11-13
  • 1970-01-01
  • 2017-01-05
  • 2021-06-20
  • 1970-01-01
  • 2020-04-09
  • 2019-09-15
  • 2019-11-09
  • 2015-02-27
相关资源
最近更新 更多