Xamarin Forms -在一个ListView中绑定多个textcell

本文关键字:ListView 绑定 textcell 一个 Xamarin Forms | 更新日期: 2023-09-27 18:15:50

我在一个ListView中绑定多个textcell有问题。如果只有一个,它可以正常工作,但是在添加更多时会给出XamlParseException。在尝试绑定Label时也会发生相同的异常。这就是我必须使用TextCell的原因。解决办法是什么?

<ListView x:Name="pList">
    <ListView.ItemTemplate>
      <DataTemplate>
        <TextCell x:Name="a" Text="{Binding ReceiverName}" TextColor="White" />
      </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

Xamarin Forms -在一个ListView中绑定多个textcell

从你对其中一个答案的评论来看,这似乎是你想要的

    <ListView x:Name="pList">
        <ListView.ItemTemplate>
          <DataTemplate>
            <ViewCell>
              <ViewCell.View>
                <StackLayout>
                  <Label Text="{Binding ReceiverName}" TextColor="White" />
                  <Label Text="{Binding SecondText}" TextColor="White" />
                  <Label Text="{Binding ThirdText}" TextColor="White" />
                </StackLayout>
              </ViewCell.View>          
             </ViewCell>
           </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

这将垂直显示3个标签。您遇到的问题是DataTemplate不能有一个以上的孩子。解决这个问题的标准方法是使用布局控件,如StackLayout.

请参阅本页获取更多信息:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/controls/layouts/

从您粘贴的代码中猜测,我想说问题是您给控件一个名称。请取出a:Name,然后重试。

如果没有帮助,也发布异常细节。

你需要像这样在数据模板中添加"ViewCell":

<ListView x:Name="pList">
  <ListView.ItemTemplate>
    <DataTemplate>
      <ViewCell>
        <ViewCell.View>
          <TextCell x:Name="a" Text="{Binding ReceiverName}" TextColor="White" />
        </ViewCell.View>
      </ViewCell>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

TextCell也有一个detail属性:

<TextCell x:Name="a" Text="{Binding ReceiverName}" Detail="{Binding AnotherName}" TextColor="White" />