Xamarin.Forms 、UI を共通化できるので便利ではあるのですが、
ところどころ、(少なくとも私にとっては)不可解な部分があるような気がします。
そのうちの一つの、 DataTemplate です。
DataTemplate には、通常 Cell をルート要素として使用します。
簡単なサンプルはこちら。
C# コードでのサンプルですが、 XAML でも似たような使い方です。
では、 XAML での使い方。 公式にあるサンプルはこれ。
Cell の使い方についてのページですが、
<DataTemplate> <ViewCell> <StackLayout BackgroundColor="#eee" Orientation="Vertical"> <!-- ... --> </StackLayout> </ViewCell> </DataTemplate>
とありますが、これをそのまま実行すると...
System.InvalidCastException: Specified cast is not valid.
と、怒られてしまいます。しまいました。
正しい使い方は
<DataTemplate> <ViewCell> <ViewCell.View> <StackLayout BackgroundColor="#eee" Orientation="Vertical"> <!-- ... --> </StackLayout> </ViewCell.View> </ViewCell> </DataTemplate>
です。
とりあえず、30 分ほど悩んでしまったので、メモしておきます。