Xaml 在ListView的StackLayout中使用TextCell

Xaml 在ListView的StackLayout中使用TextCell,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,为什么我不能在列表视图项目模板中使用这样的TextCell?当我使用它的行渲染,但他们是空的 <ListView ItemsSource="{Binding Courses}"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <StackLayout Orientatio

为什么我不能在
列表视图
项目模板中使用这样的
TextCell
?当我使用它的行渲染,但他们是空的

    <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>
   <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>
在列表项模板中是否仍可以使用
TextCell
?我正在尝试在
StackLayout
中构建一个更复杂的布局,如果我可以重新使用
TextCell
的标题/细节结构,它将大大简化。根据,单元格仅设计为添加到
列表视图
表视图
。特别是,它说:

   <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>
然而,单元格不是一个可视元素,它只是描述了 创建视觉元素

   <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>

因此,它不能直接添加到StackLayout的子级。必须使用自定义模板创建ViewCell。。您可能可以查看Github上的源代码,找出TextCell在其文本和TextDetail标签之间使用的适当间距,以保持一致。

您可以在文本单元格中使用堆栈布局!
   <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>
下面是使用它的方法

   <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>