无法从'Xamarin.Forms.TextCell'转换为'Xamarin.Forms.View'

时间:2017-05-16 16:42:04

标签: c# xaml xamarin xamarin.forms

我正在尝试创建一个包含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> 

还有其他方法可以达到这样的效果吗?
enter image description here

2 个答案:

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