WP8 の LongListMultiSelector で特定のアイテムを選択不可にする方法
標準の Photos アプリで、複数コンテンツ選択モードに入った時の動画コンテンツのこの状態。
LongListMultiSelector を使っているようにしか見えないのだが、内部で使用されているLongListMultiSelectorItem には IsSelectionEnabled が true になった時に State.Closed (非選択モード)のままキープしてくれるようなプロパティは存在しない様子。
標準アプリなのに Toolkit カスタマイズして使ってるのか・・・
ということで、仕方がないので
- LongListMultiSelectorItem に IsSelectable プロパティを追加
- セットされた DataContext に bool型の IsSelectable プロパティがあった場合にはそれを読み込む
- IsSelectable == false の場合には、State.Closed以外には遷移させない
継承で乗り切ろうかと思いましたが、private と internal が多すぎて断念です。
それっぽく動いているように見えます。
終わり。
コメント
コメントを投稿