かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Microsoft Azure Mobile AppsのQuickstartのTodoアプリがUWP版だと例外で落ちることがある

追記
Xamarin.Forms 2.3.3系が正式リリースになったので、記事の内容をアップデート

最近、Microsoft Azure Mobile AppsでQuickstartのTodoアプリのひな型にUWPが追加されました。 小躍りするくらいうれしいことなのですが、このTodoアプリですが追加した複数Todoを追加したあとに一番末尾のTodoをクリックしてCompletedにすると落ちるという残念なやつだったりします。(2016/11/18現在)

確認してみると、ItemSelectedイベントで最後の要素を選択してるときに、今のリストサイズよりも小さい要素数のコレクションをItemsSourceに設定すると落ちるみたいです。最小プロジェクトを作って再現することを確認しました。 Xamarin.Formsのバグですね。

解決方法

バグレポートまでは見つけてませんが、既知の問題だったらしく。Xamarin.Formsのバージョンを最新の安定板にアップすることで解決します。 (デフォルトでは2.0.xが設定されてる)

しかし

2.3.2系にすると、今度はダイアログが二度表示されてしまうという問題に遭遇しました。 これも既知のバグっぽくて、最新のプレリリースの2.3.3にするとちゃんと動くようになります。

ということでプレリリースを含めるにチェックを入れてXamarin.Formsをアップデートしてしまいましょう。

2.3.3系が正式になったので不要になりました。

まとめ

Xamarin.Formsは、まだ枯れた技術ではないので最新版を使うのがやっぱりよさそうですね。