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>
从你对其中一个答案的评论来看,这似乎是你想要的
<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" />