読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

Xamarin.Forms.Windows の SwitchCell での Data Binding が何やらおかしい件

こんにちは。エクセルソフトの田淵です。

Xamarin.Forms では、Windows ストア、Windows Phone 8.1 のアプリも作れます。

でご紹介していますが、プロジェクトを手動で追加して、Xamarin.Forms.Windows のライブラリを NuGet から追加で参照します。

例えば、以下のように NavigationPage を使用すると Windows Phone 8.0 では表示出来なかった画面上部のタイトルバーが追加されたりしていて使いやすくなりますので、色々と触っていました。

f:id:ytabuchi:20150818183248p:plain:w150f:id:ytabuchi:20150818183250p:plain:w150

で、怪しいのが分かったのが TableView の SwitchCell の Data Binding です。

f:id:ytabuchi:20150818184236g:plain:w300

上半分が Editor とその TextProperty を ViewModel 経由で Data Binding している Label です。ここは WP80, WP81 共に問題ありません。

下半分が Switch(TwoWay)、TableView 内の SwitchCell(TwoWay)、TextCell で、すべて ViewModel の Bool 値に Data Binding しています。

上記 gif の前半が標準で作成される WindowsPhone プロジェクトで問題ないのが分かるかと思います。後半が手動で追加した WindowsPhone81 のプロジェクトで Xamarin.Forms.Windows を参照しているヤツです。単体の Switch を動かしている時は VM からの通知を受け取れていますが、一度 SwitchCell を触ってしまうと発火しないし通知も届かなくなります。

多分 Xamarin.Forms.Windows のバグなんじゃないかな?と勘ぐっていますので、Xamarin に報告してみます。

試してみたい方は コチラ にアップしてありますので動かしてみてください。解決策が分かったぜ!ってご連絡もお待ちしていますw

Xamarin 気になった方は

是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソースJXUG リンクページ に参考資料を纏めてますので併せてどうぞ。

Xamarin の情報が欲しい方はこのブログも購読いただいたりすると嬉しいです。

以上です。