主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ
書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。
2015/12/02
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 分ほど悩んでしまったので、メモしておきます。