nuits.jp blog

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

【Xamarin.Forms】ListViewで行選択時に処理を実行する、たった一つの冴えたやり方?

2017.07.08 書いていた記事がなんだか全面的に誤っていたことに気が付いたのでリライトします。

ListViewで行が選択されたとき、それをコマンドに渡しつつ選択された行をクリアする最も冴えたやり方は次の通りでした。

  1. ListViewのSelectedItemをハンドルする
  2. その際に渡されるSelectedItemChangedEventArgsのSelectedItemプロパティをCommandに渡す
  3. その後、ListViewのSelectedItemをクリアする

クリアする際に、SelectedItemイベントが再度飛んでくるので、変更後のプロパティがnullだったら即リターンするようにするのがポイントです。
これをBehaviorにするといいでしょう。
コードはこんな感じになります。

ただ、これだけだと親のBindingContextが変わったときに正しく動かなかったりするので、以下のライブラリに含まれているので使うといいと思います(ダイマ!

www.nuget.org

まぁ、その辺をちゃんと対応したコードも公開しているので、そちらを使っていただいてもよいでしょう。

github.com

以下、下記の恥ずかしい残骸を一応残しておきます。

続きを読む

Moq用の拡張ライブラリを作ってみた?

なんだか、疑問形のタイトルにするとクリック率+200%らしいのでそうしてみました。

さて、皆さんもっきゅ使ってUnitTestしていますか?
便利ですよね!私は毎日使っています。

ただ、たまにちょっと面倒だなって思うところがあって、サポートする拡張ライブラリを作ってNuGetにも公開してみました。

www.nuget.org

良かったら見ていってください。

続きを読む

Copy to Markdown AddIn

選択したExcelのセルをMarkdown形式でコピーするExcelアドインです。

f:id:nuitsjp:20161020121709g:plain

日付の書式、金額、カンマフォーマットなども生かしたままコピーできます。
右寄せ・左寄はヘッダー行の設定に従います。
Markdown形式のブログでテーブルを記述する際などにご利用ください。

動作確認済みのOffice&Windows

  • Windows 7 64bit & Office 2010
  • Windows 10 64bit & Office 2016

必要環境

  • .NET Framework 4.5.2以上
  • Visual Studio 2010 Tools for Office Runtimeのインストールが求められるかもしれません

上記モジュールがインストールされていない場合、インストーラーからダウンロードされてインストールされる可能性があります。

操作方法

貼り付けたい範囲を選択して、右クリックから「Copy to Markdown」を選択して、あとは好きなところに貼り付けましょう!
それだけです。

ダウンロード

Github上にzip形式でインストーラーを置いてあります。

  1. 以下からダウンロードする
    https://github.com/nuitsjp/CopyToMarkdownAddIn/releases
  2. zipファイル右クリックしてプロパティを開き、「ブロックの解除」のチェックをONにする
  3. setup.exeを実行する

※要注意※
zipファイルのダウンロード後、展開する前に必ずファイルのプロパティを開き、「ブロックの解除」をチェックした上で「OK」ボタンを押してください。
f:id:nuitsjp:20161020160401p:plain

ソースコード

Github上で管理しています。
Pull Requestも歓迎です。

github.com

ライセンス

個人・商用に関わらず完全に無料でお使いいただけます。

お問い合わせ先

何かありましたら

  • Github上にIssue欄
  • ここにコメント欄
  • Twitter:@nuits_jp

いずれかに連絡ください。

Prism for Xamarin.Forms 6.3.0-pre1の紹介

本エントリーは[初心者さん・学生さん大歓迎!] Xamarin その2 Advent Calendar 2016 - Qiitaの15日目のエントリーです。
昨日はkamuさんの

kamusoft.hatenablog.jp

でした! 今回は、新しく公開されたPrism for Xamarin.Forms 6.3.0-pre1について紹介します。
このバージョンにはいくつか破壊的変更が含まれているため、取り扱いには注意してください。

なお、Prismは現在セマンティック バージョニングに対応していませんが、7.0からは対応する予定だそうです。
ここの最後で言及されています。

ちなみに製作者本人が公開されているこちらの記事の要約になります。
画像はこちらから引用させていただいています。
Prism for Xamarin.Forms 6.3 Preview with Improved Template Pack - Brian Lagunas' XAML Blog

ではいってみましょう。

続きを読む

私がXamarinを選びたい理由

よくよく考えたら、私1個もXamarinアプリを完成させたことないので、初心者だと思います。

てことで本エントリーは[初心者さん・学生さん大歓迎!] Xamarin その2 Advent Calendar 2016 - Qiitaの12月13日分になります。
明日はmuak_xさんです。よろしくお願いします!

なお、本エントリーは「私がXamarinを選びたい理由」ということで、あまり技術的な話ではないです。ポエムです!ポエム!

さて、個人の趣味は別として、私が仕事で使いたい一番の理由は実のところ

「スマートデバイスのクロスプラットフォーム開発環境」としてのXamarin

にはありません。

一般向けの「Xamarinはいいぞ!」はさておき、自分自身がなぜXamarinにフォーカスしたいのか?自分の都合を書いてみたいと思います。
泥臭い話になりますが、たまにはそういうのも良いかと思い書いてみました。

なお本エントリーはあくまで個人の見解であり、所属する企業を代表するものではありません。

それではいってみましょう!

続きを読む

Xamarin.FormsでOnSleep・OnResumeをViewModelでハンドルする

またもteratailネタですが、せっかくサンプル作ったのでこっちにも残していきます。
ちなみに、Prism for Xamarin.Formsの6.3で同様(同じ?)機能が盛り込まれる予定です。

したがって、それ以降はそちらをご利用頂いた方が良いと思います。
また、クロスプラットフォームのライフサイクル管理は、これだけでは管理の難しい課題が多数存在するようです。 例えばこちらとか tamafuyou.hatenablog.com

用法用量にはご注意ください。

続きを読む