我正在尝试创建一个包含TextCell和SwitchCell元素的ViewCell 这是我的代码 -
<ListView x:Name="AlarmList" HasUnevenRows="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<TextCell TextColor="#CCCCCC" Text="{Binding Name}" DetailColor="Red" Detail="{Binding Address}"></TextCell>
<SwitchCell />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我得到的错误是:
无法从'Xamarin.Forms.TextCell'转换为'Xamarin.Forms.View'
替代方案是使用这些
<Label ></Label>
<Switch ></Switch>
答案 0 :(得分:6)
StackLayout
需要一个View
对象,它基本上是任何UI元素,但不是Cell
。您可以使用Xamarin Forms附带的预定义单元格,如果您希望推迟编写自己的布局。
你有一个好的开始,但你不能使用细胞。所以失去它们,并按照你想要的方式布置ViewCell
。
答案 1 :(得分:2)
正如其他人所建议的,ViewCell
只能包含非Cell Forms元素。要更正ViewCell
,请执行以下操作:
<ListView x:Name="AlarmList" HasUnevenRows="True" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label TextColor="#CCCCCC" Text="{Binding Name}"/>
<Switch />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>