読者です 読者をやめる 読者になる 読者になる

ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

サンプルデータを作るプラクティス的な何か

Blendでデザイン調整するときに絶対あったほうがいいサンプルデータ。あれこれ試して、いちばんさくっと作れた方法をまとめます。

大まかな順番

  1. モデルとビューモデルを作る
  2. ビューを組む
  3. バインドするプロパティをまとめてXMLにする
  4. 適当にテキスト要素をつっこむ
  5. XMLからインポートする

文字列をバインドしておけばOKな簡単なものならこれでいけます。多少複雑でも同じようなノリでいけますが、文字列や数値以外からのコンバートが必要なものについてはこの作戦は使いにくいと思います。最初の2つは大丈夫だと思うので、3つ目から見てみましょう。

バインドするプロパティをまとめてXMLにする

とりあえず表紙画像をタイル状に表示して、タイトルと作者をちらっとバインドさせたいとしましょう。そうしたらこんな感じのXML書いておけばいけると思います。

<BookSample>
  <Books>
    <Book>
      <CoverPath>/sample/hoge.jpg</CoverPath>
      <Title>羅生門</Title>
      <Author>太宰治</Author>
    </Book>
    <Book>
      <CoverPath>/sample/hoge.jpg</CoverPath>
      <Title>人間失格</Title>
      <Author>太宰治</Author>
    </Book>
  </Books>
</BookSample>

バインドしたいプロパティを要素名にし、値をテキスト要素に書きます。同じ名前の要素を2つ以上並べるとコレクションとして判定されます。上の例でいうとBooksはBookという型の値のコレクションだという判定がなされます。BooksをItemsSourceとしたコレクションコントロールのItemTemplateに渡されるDataContextは上の例でいうとBookをルートとしたデータになります。なので、今回はわかりやすくBookという名前にしてありますが、ここに限っていえば別にItemでもいいですし、誤解を招きそうですがMusicでも構いません。

適当にテキスト要素を突っ込む

はい、読んでそのままです。ここは後で調整したり、コレクションの要素を増やしたり減らしたりもできるのですが、とりえあず入れておくとサンプルデータをあとで量産できなかったときの保険として使えます。

XMLからインポートする

これを保存したら、データタブを開き、「サンプル データの作成」→「XMLからサンプル データのインポート」を選んで件のファイルを読ませてやるとおしまいです。しばらくするとサンプルデータをインポートして、使えるようになります。このあとは、プロパティの型を調整したりコレクションの数を増やしたり減らしたりしてもっと使えるサンプルにしましょう。