【Blen道】ListViewと StackPanel
#win8dev_jp #wpdev_jp
週末はちょっと調子よくなくてまだ引っ張ってる高橋です。
モダンスタイルアプリケーションをBlendで作り上げてく(テク)Blen道。
さて、Grid の続きを書こうかと思ったのですが、会社帰りにいろいろ思案してると、パネルとしてのStackPanel をFeature すべきかな?とひらめく。で、使う場面を考えたときに、時々ListViewにしようかStackPanelにしようか?なんて考えたことがあったことを思い出した。
StackPanel とリスト
【Blen道】パネルを知る で書いたようにStackPanel は縦、ないし横にアイテムを並べくれるパネル。
これ、縦に並べて中に入れるものを横長にするとまるでリストのようになる。
ListViewかStackPanelか
さてどっちを使うか。見てわかるし誰でもわかるが、
- データを表示するならListViewしかない。
- いろんなスタイルのコンテンツを表示するならStackだ。
- コンテンツの中身の一部をクリックしたりするならStackだ
ListViewは1レコードで1つのアイテムとして扱ってしまう
まぁ、見せるアイテムなのか、選ぶアイテムなのか? 型が一緒か・様々か、で選び方が変わる。
ListView | StackPanel | |
データソースとの連携 | ◎ | × |
決まったフォーム | ◎ | × |
アイテムのクリック | ◎ | 反応なし |
縦横切り替え | △ | ◎ |
さまざまなアイテム | △ | ◎ |
アイテムの入れ替え | ◎ | △ |
考えた割には当たり前すぎる結果でした。
では問題
では、このUIはどっちを使う?
表示されているアイテムはほとんど同じ型ですが、一部ちょっと違う。そしてアイテムとしてセレクトできるものもあれば、できないものもある。
もしかしたら、これは StackPanel と ListViewの組み合わせとしてやってるかも。
赤い部分がStackPanel で、緑の部分がListView。こうすれば思い通りのUIが作れると思う。
どちらかではなく、それぞれの特徴を把握しながら使う。パネルとコントロールの違いは、アイテム1つ1つを選択させるか(=機能を持たせるか)の違いになると思う。
… で、Blend ないじゃん、というお方。そうでした。ごめんなさい。でもこういった考え方がBlendに向かった時に役に立つのよ。(って逃げておくw)