WP8 の LongListMultiSelector で特定のアイテムを選択不可にする方法


標準の Photos アプリで、複数コンテンツ選択モードに入った時の動画コンテンツのこの状態。

LongListMultiSelector を使っているようにしか見えないのだが、内部で使用されているLongListMultiSelectorItem には IsSelectionEnabled が true になった時に State.Closed (非選択モード)のままキープしてくれるようなプロパティは存在しない様子。
標準アプリなのに Toolkit カスタマイズして使ってるのか・・・

ということで、仕方がないので
  1. LongListMultiSelectorItem に IsSelectable プロパティを追加
  2. セットされた DataContext に bool型の IsSelectable プロパティがあった場合にはそれを読み込む
  3. IsSelectable == false の場合には、State.Closed以外には遷移させない
という修正を、Toolkit に入れました
継承で乗り切ろうかと思いましたが、private と internal が多すぎて断念です。


それっぽく動いているように見えます。

終わり。

コメント

このブログの人気の投稿

Lumia 920買った - LTE有効化と開発端末登録

Android で Unicode絵文字入力

Nexus 5 買った