投稿

12月, 2014の投稿を表示しています

2014購入記録

今年も携帯電話買ってしまった。 携帯電話 Sony - SOL23 Xperia Z1 LGE - Nexus 4  HTC - One (M8) for Windows  Sony - SO-04F Xperia A2 AV機器 audio-technica - ATH-CKM99 Onkyo - D-309E Sony - NW-A16 コンピュータ Sony - VAIO Pro 13 red edition Kensington - SlimBlade Trackball    Enermax - Revolutiohn-X't ERX530AWT カメラ Sony - DSC-QX10 ゲーム SCE - PlayStation 4 SCE - Flowery SQEX - Tomb Raider: Definitive Edition SCE - inFAMOUS: Second son

Universal Windows の GridView で特定のアイテムを選択不可にする方法

イメージ
WP8 の LongListMultiSelector で特定のアイテムを選択不可にする方法 の続き(?)です。 Universal Windows アプリへの移植 Universal Windows アプリケーション では、Phone アプリも Windows Runtime API (いわゆるMetro、Modern)アプリ用の API を使って実装します。そのため、今まで Phone アプリを開発していて Universal に移植する場合には多くのコントロールを置き換える必要があり、 LongListSelector や Toolkit の LongListMultiSelector を使用していた場合もこれに当てはまります。 前回と同じくやりたいことは、 「ViewModel の特定にプロパティの変化に応じて、既に表示済みであっても動的に GridViewItem の選択可不可が変わること」 です。 試したこと まず、試して効果がなかった方法を挙げておきます。 ViewModel に IsEnabled プロパティを追加する ItemContainerStyle で、GridViewItem の IsEnabled プロパティに IsSelectable をバインドする ItemContainerStyleSelector で、IsSelectable に応じて別のStyleを適用する 最初に気づきましたが、アイテムが選択できるかどうかは ItemContainer (GridViewItem) の IsEnabled でも制御できるようです。なので、上記の方法は IsEnabled にどのように ViewModel のプロパティをバインドするか、という観点で行っています。 ※ WP8 のときに LongListMultiSelector の中にまで手を加えたのはやり過ぎだったのかもしれません。今更ですが。 1番目の方法ですが、GridViewItem の IsEnabled は ViewModel の IsEnabled をバインドしていないので効果がありません。 2番目の方法ですが、XAMLで下記のような実装をしました。 <GridView.ItemContainerStyle> ...

そういえば、Nexus 4 と One M8(Windows) と Xperia A2 を買ってた

イメージ
Nexus 4 10月末くらいに Expansys で投げ売りしていたリファビッシュ品の Nexus 4 を買っていました。 なかなか質感が良く、裏面のキラキラもかっこいいです。 Lollipopのファクトリイメージを焼いたらそれで満足しました。 HTC One M8 for Windows (Verizon Wireless) 9月ごろ出張に行った時に買おうと思ったのですが契約なしでは買うことができず、10月末くらいに Amazon.com で注文して長期出張でUSに行っている友達に転送してもらいましたが、Fedex で送ってもらったら送料が1万円くらいして驚きました。 Lumia 920 が壊れたのでメイン開発機として活躍中です。 Xperia A2 SO-04F メインで使っていた HTC J One HTL22 のバッテリーがヘタってきたので、白ロムで買いました。 満足感は何もないですが、不満もそんなにない無難な感じです。