nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Xamarin.Forms.BehaviorsPack 1.2.0をリリースしました。

新たにSelectedItemBehaviorを追加しました。

ListViewで選択された行のItemを引数にCommandを実行するシンプルなBehaviorです。
EventToCommandBehaviorでも似たことはできますが、SelectedItemBehaviorはCommand実行後にSelectedItemを解除することができる点が異なります。
解除の有無はClearSelectedプロパティで制御することができ、falseを設定するとCommand実行後も選択されたままになります。

以下がサンプルコードとなります。

XAML Sample

<ListView ItemsSource="{Binding Fruits}">
    <ListView.Behaviors>
        <behaviorsPack:SelectedItemBehavior Command="{Binding SelectedFruitCommand}"/>
    </ListView.Behaviors>

C# Sample

public IList<Fruit> Fruits { get; } = new List<Fruit>();

public ICommand SelectedFruitCommand => new Command<Fruit>(fruit =>
{
    ....
});

本ライブラリはNuGetから利用可能です。

www.nuget.org

以上です。

Xamarin.Formsで「ビルド アクション 'EmbeddedResource' は、プロジェクトのターゲットの 1 つ以上でサポートされていません。」の解決方法

2017年7月現在、良く遭遇します。
最初に開いたソリューションで良くなるかも。

起きたら、ソリューションを閉じて開き直したら99%直ります。
ゴミみたいな記事でゴメン(´・ω・`)

追記:

Service LocatorとDependency InjectionパターンとDI Container

本エントリーでは次の点を整理したいと思います。

  • ServiceLocatorパターンとは何か?
  • Dependency Injection(以降DI)パターンとは何か?
  • DI Containerとは何か?
  • これらを使うと何がうれしいのか?
  • ServiceLocatorとDI何が違うのか?
  • ServiceLocatorとDIどちらを使うべきか?
続きを読む

オブジェクトのライフタイム パターンを整理してみた

システムやアプリケーションを構築していると、様々なパターンのオブジェクトの生成~消滅に遭遇します。

  • ユーザーが何らかのアクションを起こし、それに伴うインタラクションが完了するまでの間だけ生存するオブジェクト。
  • アプリケーション起動から終了までの間、常に生存するオブジェクト。

私は常々、オブジェクトの生成~消滅までのライフタイムは、いくつかのパターンに分類できると考えてきました。そのパターンはユーザーインターフェースのアーキテクチャが異なっても、概ね類似したパターンの内に収束すると考えています。スマートデバイスのネイティブ実装でも、Windowsアプリでも、Webアプリでも、です。

そこで改めてオブジェクトの生成~消滅までのライフタイム パターンをまとめ、その留意点や基本原則について、自分の経験に基づいて整理してみました。異論・反論もちろんあると思います。きっとそれは本エントリーを洗練化する一助になると思いますので、ぜひコメントなりTwitter(@nuits_jp) なりにご意見ください。

なお本エントリーのライフタイムの名称は完全に(もしくは一部は)オレオレ用語で一般的な概念とは限りませんので、取り扱いにご注意ください。

続きを読む