2017.07.08 書いていた記事がなんだか全面的に誤っていたことに気が付いたのでリライトします。
ListViewで行が選択されたとき、それをコマンドに渡しつつ選択された行をクリアする最も冴えたやり方は次の通りでした。
- ListViewのSelectedItemをハンドルする
- その際に渡されるSelectedItemChangedEventArgsのSelectedItemプロパティをCommandに渡す
- その後、ListViewのSelectedItemをクリアする
クリアする際に、SelectedItemイベントが再度飛んでくるので、変更後のプロパティがnullだったら即リターンするようにするのがポイントです。
これをBehaviorにするといいでしょう。
コードはこんな感じになります。
ただ、これだけだと親のBindingContextが変わったときに正しく動かなかったりするので、以下のライブラリに含まれているので使うといいと思います(ダイマ!
まぁ、その辺をちゃんと対応したコードも公開しているので、そちらを使っていただいてもよいでしょう。
以下、下記の恥ずかしい残骸を一応残しておきます。
続きを読む