2017-05-16 1 views
1

Ich versuche, eine ViewCell, die Elemente TextCell und SwitchCell hat, zu erstellen.
Das ist mein Code-kann nicht von 'Xamarin.Forms.TextCell' zu 'Xamarin.Forms.View' konvertieren

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

die Fehler, die ich bekommen ist:

kann nicht von 'Xamarin.Forms.TextCell' auf 'Xamarin.Forms.View' konvertieren

Die Alternative dazu ist die Verwendung dieser

<Label ></Label> 
<Switch ></Switch> 

Gibt es einen anderen Weg, etwas wie das zu erreichen?
enter image description here

+0

Zellen können nur in Listen und Tabellen verwendet werden, können sie nicht in anderen Layouts verschachtelt werden. – Jason

Antwort

6

A StackLayout erwartet ein View Objekt, das im Prinzip jedes Oberflächenelement ist, aber nicht Cell s. Sie können entweder die vordefinierten Zellen verwenden, die mit Xamarin Forms geliefert werden, wenn Sie davon abrücken möchten, dass Sie Ihr eigenes Layout erstellen.

Sie haben einen guten Start, aber Sie können keine Zellen verwenden. Also verlieren Sie sie und gestalten Sie die ViewCell wie Sie wollen.

2

Wie andere vorgeschlagen haben, kann ein ViewCell nur Nicht-Zellenformelemente enthalten. So korrigieren Sie Ihre ViewCell es wie folgt tun:

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