为什么我不能在TextCell
项目模板中使用这样的ListView
?当我使用它时,行呈现但它们是空的。
<ListView ItemsSource="{Binding Courses}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical">
<TextCell Text="{Binding Title}" Detail="{Binding SubTitle}"></TextCell>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
使用Label
时,我可以看到每行中的文字内容:
<ListView ItemsSource="{Binding Courses}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical">
<Label Text="{Binding Title}"></Label>
<Label Text="{Binding SubTitle}"></Label>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
无论如何我可以使用列表项模板中的TextCell
吗?我正在尝试在StackLayout
内部构建一个更加完整的文本,如果我可以重新使用TextCell
的标题/详细信息结构,它将会大大简化。
答案 0 :(得分:2)
根据Xamarin.Forms Cell Reference,单元格只能添加到ListViews
或TableViews
。特别是,它说:
然而,Cell不是一个可视元素,它只是描述了一个模板 创建视觉元素。
因此无法直接添加到StackLayout的子节点。你必须创建一个带有自定义模板的ViewCell ..你可以查看Github上的源代码,找出TextCell在它的Text和TextDetail标签之间使用的正确间距,以保持一致
答案 1 :(得分:0)
您可以在文本单元格中使用堆栈布局! 这是使用它的方法。
<TextCell>
<TextCell.BindingContext>
<StackLayout Orientation="Horizontal" >
<Label Text="{Binding Name}"
HorizontalOptions="CenterAndExpand" TextColor="Black"/>
<Label Text="{Binding Description}"
HorizontalOptions="CenterAndExpand" TextColor="Black"/>
<Label Text="{Binding Price}"
HorizontalOptions="CenterAndExpand" TextColor="Black"/>
</StackLayout>
</TextCell.BindingContext>
</TextCell>