かずきのBlog@hatena

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

Xamarin.FormsのBehaviorをBinding可能にする

デフォルトだとBindingできないんですよ。ということでソリューションは以下のようにします。 github.com BindingContextが伝搬しないなら伝搬させればいいじゃない?ということで手動でせっせと伝搬させてます。 これくらいデフォルトで面倒見てほしかった……

Xamarin.FormsのListViewでタップされた項目をスマートにViewModelに渡す方法

EventToCommandBehaviorを使います。コードはこちらを参考に。 github.com この時、こういうBehaviorを作っておくとListViewの選択がされなくなって捗ります。 using Xamarin.Forms; namespace PrismUnityApp2 { public class NotSelectableListViewBehavior…

Xamarin.FormsでPrism.Formsを使ってPCLに非対応なライブラリを使う方法

例えばMicrosoft.AzureのStorageのライブラリなんかがXamarin.AndroidとXamarin.iOSには対応してるけどPCLには対応してないといった感じです。 被害者がここに。 @chomado ウワアアあああああああああああああああああXamarin .Forms PCL の私 爆死\(^o^)/…

Xamarin.Formsで画面レイアウトを作るためのレイアウトコントロールの必要最低限

Xamarin.Formsで思い通りのレイアウトを組みたい。 そんな時には、レイアウト系のコントロールを押さえておくといいです。 公式ドキュメント Layouts - Xamarin Layoutコントロール Xamarin.Formsでは、複数のコントロールを配置するときには、あらかじめ定…

Xamarin.FormsのListViewで行単位で高さを変えるには

何もしないと同じになるっぽい。 違う高さにするには、以下のようにHasUnevenRowsプロパティをTrueに設定すればいい。 <ListView ... HasUnevenRows="True"> ... </ListView> おしまし。

Xamarin.Formsでタブページを使う

TabbedPageを使うといいということみたいです。 TabbedPage内にはタブとして表示したいページを置いて行って、タブのタイトルにはPageのTitleが表示されるという動きをしています。 意外と簡単だった。 Prismを使ってNavigationPage内にTabbedPageをネストし…

Xamarin.FormsでLabelに下線を引きたい

デフォルトで引けないんですね。知らなかった。 Effectを使おう ということでカスタムレンダラー案件かなと思ったらEffectでいけるっぽいです。 Android Androidに以下のようなクラスを追加します。 using Android.Widget; using Xamarin.Forms; using Xamar…

Visual Studio Moble Center触ってみた

Visual Studio Mobile Centerの申し込みをしたら、先日招待メールもらったので触ってみました。 初期画面 ログインするとこんな感じの画面になります。 アプリの作成 Add a new appというボタンがあるので押すと、アプリの作成画面になります。 OSの選択が排…

ReactiveProperty 3.4.0をXamarinで使う場合

Reactive Extensions 3.1.xがPCLにうまく入らないので、.NET Standardにプロジェクトを変換してから入れてください。 何かRx安定しないな…。

Xamarin.Formsでボタンの2度押しをReactivePropertyを使って抑止してみよう

お題の通りです。 こんな感じでReactiveCommandを普通に使うと連打すると2重で画面遷移したりします。 using Prism.Mvvm; using Prism.Navigation; using Reactive.Bindings; using System; namespace PrismUnityApp12.ViewModels { public class MainPageVi…