プロジェクトで使っているNuGet パッケージのライセンスを一覧する

NuGet パッケージのライセンスをまとめて確認するとき、Package.configの場合は
pronama.azurewebsites.net
でできますが、PackageReferenceには対応していません。

そこで改造してPackageReferenceに対応させました。
コンソールアプリの動作確認はできたのですが、拡張機能のほうは理論上動くはずなのですが、こちらの環境では動きません。

ソースはGitHubで公開しています
github.com
フォーク元にissue投げてるけど、取り上げてくれるかどうかは不明。

インデクサをIObservable<T>に変更する拡張メソッド書いた

作ってるアプリに必要そうなので書いたけど、いらなくなったので供養
インデクサをIObservable<T>に変更できるよ。需要は知らない。


インデクサをIObservable<T>に変更する拡張メソッド

Xamarinで多言語対応するよ

過去の自分のコードを参考にして多言語対応しようとして苦戦したからメモするよ。

言語の変更がうまくいかない、インデクサの変更が伝わっていないのでは?

RaisePropertyChanged("Item")を追加

やっぱりうまくいかない

ResourceServiceにINotifyPropertyChanged継承させてなかったよ・・・

よいこのみんなはINotifyPropertyChangedの継承を忘れちゃダメだよ。
悪い子はもっと悩めばいいよ

悪戦苦闘したけど何とかうまくいったプロジェクトはGitHubで公開してます。
github.com

ReactivePropertySlimをMessagePackに対応させてみた(改)

ReactivePropertySlimをMessagePackに対応させるためのカスタムリゾルバを書いたよ
ReactivePropertyの修正がきたから書き換えたよ(2018/4/24更新)


ReactivePropertySlimResolver

非同期で作成したインスタンスをReactivePropertyに

非同期ファイル読み込みで作成したインスタンスをコンストラクタでプロパティにセットするのに手間取ったのでメモ

public ReadOnlyReactivePropertySlim<Setting> Config { get; }

public App()
{
    Config = Observable.FromAsync(() => Setting.LoadAsync()).ToReadOnlyReactivePropertySlim();
}

こうするだけで、Settingクラスの非同期ファイル読み込みの結果をConfigプロパティにセットできます。

XamarinでPickerにEnumをバインドするよ

XamarinでPickerにEnumをバインドしようとしたんだけど、軽くつまずいたんでメモ
alexdunn.org
で99%うまくいくんだけど、このままだとコンバーターが働かないので、Viewを書き換えます。
修正したコードをgistに公開しました。
XamarinでPickerにEnumをバインド

コンバーターをStaticResouceで呼ぶようにするとちゃんと動きました。
SelectedIndexをEnumにコンバートしているから、Enumが0からの連番になっていないとうまく動かないよ。
Enumが特殊な場合は自分で工夫してね。

XamarinでContentPage.Iconを共通のファイルに変更

XamarinでContentPage.Iconを共通プロジェクトからのファイルに変更する方法がわかったよ
Imageのほうは先人の知恵にしたがってね
www.project-respite.com

残念ながらContentPage.Iconは同じ方法が使えないので一工夫いるよ
まず共通プロジェクトの適当な場所に「埋め込みリソース」で元画像ファイルを追加してね
そこから、「Andoroid iOS」それぞれのプロジェクトに「追加」-「既存の項目」で元画像ファイルを「リンクとして追加」すると、元画像ひとつでそれぞれのアイコンとして使えるよ
くわしくは
matatabi-ux.hateblo.jp
を参考にしてね。たぶんImageでも使えるよ。