2017-07-25 2 views
0

私が取り組んでいるアプリケーションにはラベルがあり、右側にはスイッチがあります。ここでは、この達成するために使用されるXAMLのサンプルです:これを達成するために、より最適な方法があるかどうか、私は知りたい何StackLayoutを使わずにViewCellでラベルとスイッチをコーディングする方法はありますか?

<ViewCell x:Name="ss"> 
    <StackLayout VerticalOptions="CenterAndExpand" Padding="20,0,20,0"> 
     <StackLayout Orientation="Horizontal" VerticalOptions="CenterAndExpand"> 
     <StackLayout HorizontalOptions="StartAndExpand" VerticalOptions="Center"> 
      <local:LabelBodyRendererClass Text="Show Subcategory" YAlign="Center" XAlign="Center" /> 
     </StackLayout> 
     <StackLayout HorizontalOptions="EndAndExpand" Orientation="Horizontal"> 
      <Switch x:Name="ssSwitch" Toggled="SsSwitch" VerticalOptions="Center" /> 
     </StackLayout> 
     </StackLayout> 
    </StackLayout> 
</ViewCell> 

です。設定ページには多くのスイッチ設定があり、多数の要素があるようです。

誰かが同じ機能を実現するための簡単な方法を持っているのですか、多くのstacklayout要素を付けるだけですか? SwitchCell

が見hereしてください:私は推測

+0

それぞれが単一の子要素のみを含む場合は、2つの最も内側のSLが本当に必要ではありません。しかし、一般的には、複数の要素を単一のビューに含める必要があるときはいつでも、何らかのレイアウトコンテナが必要になります。 – Jason

答えて

1

組み込みのSwitchCellを使用できますが、レイアウト用のカスタムセルを作成する必要がある場合はStackLayoutの代わりにGridを使用できます。より効率的でレイアウトを定義する方が簡単です。

<ViewCell x:Name="ss"> 
    <Grid VerticalOptions="CenterAndExpand" Padding="20, 0"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="Auto" /> 
     </Grid.ColumnDefinitions> 
     <local:LabelBodyRendererClass HorizontalOptions="StartAndExpand" Text="Show Subcategory" YAlign="Center" XAlign="Center" /> 
     <Switch x:Name="ssSwitch" Grid.Column="1" Toggled="SsSwitch" VerticalOptions="Center" HorizontalOptions="End" /> 
    </Grid> 
</ViewCell> 

例を使用すると、2列の1列グリッドが作成されます。最初の列はカスタムコントロールLabelBodyRendererClassになり、2番目の列がスイッチになります。

[水平]と[垂直]オプションは、UIコントロールで右に適用できます。

Grid

について

もっとUDPATE

確かに、あなたが任意の他の細胞を使用すると同じようにXAMLからSwitchCellを使用することができます。

<SwitchCell x:Name="SS" Text="{Binding Setting1Text}" On="{Binding Setting1}" /> 
<SwitchCell Text="{Binding Setting2Text}" On="{Binding Setting2}" /> 
<SwitchCell Text="{Binding Setting3Text}" On="{Binding Setting3}" /> 
<SwitchCell Text="{Binding Setting4Text}" On="{Binding Setting4}" /> 

これらのサンプルは、バインディングを使用しているが、私はあなたがバインディングを使用することを示唆しているが、あなたのCustomCellとして、あなたは、背後にあるコードから値を取得および設定するために名前を使用することができます。

希望のヘルプ -

+0

Thanks、SwitchCellについては、XAMLを使用する方法がありますか? –

+0

XAMLのSwitchCellを使用したサンプルの回答を更新する – apineda

0

は、あなたが探しているものということです。

関連する問題