<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns="http://purl.org/rss/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:cc="http://web.resource.org/cc/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/"
    xml:lang="ja">

    <channel rdf:about="http://pro.art55.jp/?mode=rss">
    <title>創造的プログラミングと粘土細工</title>
    <link>http://pro.art55.jp/</link>
    <description>プログラミング関連Blog&lt;br /&gt;
私の興味の端から端までをお届けします！</description>
    <dc:language>ja</dc:language>
    <admin:generatorAgent rdf:resource="http://jugem.jp/?v=1.0"/>
    <cc:license rdf:resource="" />    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303875" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303874" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303873" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303872" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303871" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303870" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303869" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303868" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303867" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303866" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303865" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303864" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303863" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303861" />
        <rdf:li rdf:resource="http://pro.art55.jp/?eid=1303860" />
      </rdf:Seq>
    </items>
    </channel>

  <item rdf:about="http://pro.art55.jp/?eid=1303875">
    <link>http://pro.art55.jp/?eid=1303875</link>
    <title>【C#】varを使う場合と使わない場合</title>
    <description>JUGEMテーマ：コンピュータ
ローカル変数を宣言する場合にvarが使えるようになったのはC#3.0からだったと思います。最近は意識的に「var」を記述するときとそうでないときを使い分けています。varを使わないパターン　・foreachのコレクションの要素の変数　・メソッドの...</description>
<content:encoded><![CDATA[
<div>JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a>
</div><div><br></div>ローカル変数を宣言する場合にvarが使えるようになったのはC#3.0からだったと思います。<div>最近は意識的に「var」を記述するときとそうでないときを使い分けています。</div><div><br></div><div>varを使わないパターン</div><div>　・foreachのコレクションの要素の変数</div><div>　・メソッドの戻り値（Linq内での作成した匿名クラスを返すコレクションはvarを使う）</div><div>　・プロパティのGetter</div><div>varを使うパターン</div><div>　・コンストラクタ</div><div>　・キャスト</div><div><br></div><div>同一行内（末尾の「;」まで）で同じ型を２回書くような場合は一回で済むようにvarを使ってます。</div><div>ただし、一回、型を書いた後にvarに書き直してることが多いです。</div><div><div class="jugem_theme"><br></div></div>
]]></content:encoded>
    <dc:subject>C#</dc:subject>
    <dc:date>2012-01-18T22:43:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303874">
    <link>http://pro.art55.jp/?eid=1303874</link>
    <title>【C#】LINQを使って見て数年・・・</title>
    <description>「LINQ」を使い初めてからバグコードを書く頻度が減った（ような気がする）ことに、最近、気づきました。なんでしょうね。心当たりはあるのですが、残念、文章でまとめられない。</description>
<content:encoded><![CDATA[
「LINQ」を使い初めてからバグコードを書く頻度が減った（ような気がする）ことに、最近、気づきました。なんでしょうね。<div><div><br></div><div>心当たりはあるのですが、残念、文章でまとめられない。</div></div>
]]></content:encoded>
    <dc:subject>.NET Framework</dc:subject>
    <dc:date>2012-01-14T15:50:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303873">
    <link>http://pro.art55.jp/?eid=1303873</link>
    <title>【雑記】バインディングを考えてます。</title>
    <description>何かがあって、何かを指す何かがある。「何か」は、「『何か』を指す何か」より大きい。「『何か』を指す何か」は、「何か」を指すために存在するから、「何か」より小さくなるのは必然なんだね。「『何か』を指す何か」を作ることを「バインディング」って言うのかな？</description>
<content:encoded><![CDATA[
何かがあって、何かを指す何かがある。<div>「何か」は、「『何か』を指す何か」より大きい。</div><div>「『何か』を指す何か」は、「何か」を指すために存在するから、</div><div>「何か」より小さくなるのは必然なんだね。</div><div><br></div><div>「『何か』を指す何か」を作ることを「バインディング」って言うのかな？</div>
]]></content:encoded>
    <dc:subject>コンピュータ全般</dc:subject>
    <dc:date>2011-12-02T00:29:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303872">
    <link>http://pro.art55.jp/?eid=1303872</link>
    <title>【お勧めセミナー】NECラーニング</title>
    <description>Windows Phone&amp;nbsp;JUGEMテーマ：コンピュータ（Developer Camp）−Phoneアプリをマーケットプレイスへ登録しよう！！−http://www.neclearning.jp/courseoutline/courseId/MV040/.3受講料無料でタダでApp Hubの登録ができますよ。先週、受講しApp Hub登録してきました。※...</description>
<content:encoded><![CDATA[
<div>Windows Phone&nbsp;JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></div><div><br></div><div><br></div><div>（Developer Camp）−Phoneアプリをマーケットプレイスへ登録しよう！！−</div>http://www.neclearning.jp/courseoutline/courseId/MV040/.3<div><br></div><div>受講料無料でタダでApp Hubの登録ができますよ。先週、受講しApp Hub登録してきました。</div><div><br></div><div>※注意 App Hubを登録しても実機のWindow Phone持ってないと何の役にも立たないので注意です。</div>
]]></content:encoded>
    <dc:subject>Windows Phone 7</dc:subject>
    <dc:date>2011-11-14T22:21:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303871">
    <link>http://pro.art55.jp/?eid=1303871</link>
    <title>【雑記】最近、興味の矛先は</title>
    <description>&amp;nbsp;最近、「バインディング」に関していろいろ調べてみたり、考察してみたりしてます。WPFのBindingだけじゃなくて、もっと広域的にバインディングって何だろってあれやこれやしてます。まとまった何か言いたくなったらここに書きます。発散してはじけたら、また再来年...</description>
<content:encoded><![CDATA[
&nbsp;最近、「バインディング」に関していろいろ調べてみたり、考察してみたりしてます。<div>WPFのBindingだけじゃなくて、もっと広域的にバインディングって何だろってあれやこれやしてます。</div><div><br></div><div>まとまった何か言いたくなったらここに書きます。</div><div>発散してはじけたら、また再来年ぐらいに・・・</div><div><br></div><div><br></div><div><br></div><div>---------------</div><div>その前に</div><div><br></div><div><strong style="margin: 0px; padding: 0px;">【WPF】ListBoxやDataGridをグループ化表示する。</strong><br style="margin: 0px; padding: 0px;"><a style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(231, 96, 158); " href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</a><br style="margin: 0px; padding: 0px;"></div><div><br></div><div>の肝心なところを書いてないから書かないと！！</div>
]]></content:encoded>
    <dc:subject>C#</dc:subject>
    <dc:date>2011-11-14T20:47:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303870">
    <link>http://pro.art55.jp/?eid=1303870</link>
    <title>【訃報】ジョブズ死去</title>
    <description>中二病だった高校生の頃はビルゲイツにあこがれていました。いまだに中二病ですが、いまはジョブズにあこがれています。実のところジョブズという人物がいることを知ったのは、就職後だったような気がします。Apple社はそれ以前から知ってた思います。そんなあこがれのジ...</description>
<content:encoded><![CDATA[
<span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">中二病だった高校生の頃はビルゲイツにあこがれていました。いまだに中二病ですが、いまはジョブズにあこがれています。実のところジョブズという人物がいることを知ったのは、就職後だったような気がします。Apple社はそれ以前から知ってた思います。</span><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">そんなあこがれのジョブズが亡くなられたことは、ショックです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">私は生粋の日本人で母国語オンリーで生きている人間ですので、ジョブズという人物を直接、見てたり、聞いてたりなんて事はありません。また聞きの、またまた聞きくらいにしか、その人物にふれたことがありません。しかし、これまでの人生でジョブズの手がけた物のいくつかをさわったことがあります。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">その一つが中学生だった頃にさわったMacintosh。美術の先生の私物パーソナルコンピュータで、リンゴがカラフルな配色がされていたのを記憶しています。先生の言葉を鵜呑みにして、他のコンピュータとは違う、これが最高のパーソナルコンピュータだと思っていました。エアーフォッケーゲームの難しいことこの上なかったです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">それから、大学にあった端末でホームページ作りに夢中になりました。大学ではプログラミングはほとんど勉強する機会がなかったので、いま考えると惜しいことをしたと思うのですが、当時さわっていた端末が「NeXTSTEP」でした。ホームアイコンが点描で書かれていたり、細部に職人のこだわりを感じる端末でした。残念ながらアホな大学生だったので「ホームディレクトリー」という概念に気づくのには多少時間が必要でして（笑）</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">大学の端末は、途中から「NeXTSTEP」からLinuxのVineに替わりがっかりしたことを思い出しました。今思えば、見た目の完成度・洗礼されたデザインから、チープなデザインになったことでが一番がっかりだったとしたことだと思います。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">それから拾ったPowerMac（捨てた人からもらって良いと許可はもらいましたよ）・・・もってるだけで幸せでした。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">MacMiniなんか幸せでした。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">Macintosh、NeXTSTEP、PowerMac、MacMini・・・全部、「こいつは凄いヤツなんだ！」という雰囲気があり、紹介されたときはそんな事を聞いた記憶があります。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">私の人生にときたま現れるジョブズの作品。さわったことのあるというだけで少し幸せな気持ちにされてくれました。それが、これからは生み出されないと思うと少し寂しいです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><font size="-1"><a href="http://www.apple.com/">Steve Jobs</a>, 1955 - 2011</font><br><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">心よりご冥福をお祈り申し上げます。</span></div>
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2011-10-06T23:40:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303869">
    <link>http://pro.art55.jp/?eid=1303869</link>
    <title>【WPF】ItemsControlにアイテムのコレクションを設定するには？3</title>
    <description>JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859------------------------------------------Source and Project--------------...</description>
<content:encoded><![CDATA[
<div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><div class="jugem_theme">JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></div><div class="jugem_theme"><br></div><div class="jugem_theme"><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255);">-----------------------------------------<br style="margin: 0px; padding: 0px;">本投稿は下記のシリーズの一部です。<br style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">【WPF】ListBoxやDataGridをグループ化表示する。</strong><br style="margin: 0px; padding: 0px;"><a style="margin: 0px; padding: 0px; color: rgb(231, 96, 158); text-decoration: underline;" href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</a><br style="margin: 0px; padding: 0px;">------------------------------------------</span><br></div></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><img src="http://img.pro.art55.jp/20111006_4701611.jpg" width="472" height="191" alt="" class="pict"></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; "><a href="http://art55.jp/App/20111006/Art55.ItemsControlItemsDemo20111006_001.zip">Source and Project</a></span></div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">----------------------</span><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-weight: bold;">ItemsControl.ItemsSourceプロパティにIEnumerableインターフェースを継承するオブジェクトを代入することにより、ItemsControlのコンテンツを生成することができます。</span><span style="font-weight: bold;">ItemsControl.ItemsSourceプロパティで指定したコレクションをフィルター処理、ソート処理、グループ化処理が実施されたコレクションが</span><span style="font-weight: bold;">ItemsControl.Itemsの各アイテムとして公開さ、ListBoxの表示対象となります。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255);">----------------------</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">と、以前に書きましたが、これの動きを今回は確認したいと思います。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">たとえば、とある街に売り出し物件があったとします。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">物件には</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">・東から西方向へ番号が付けれれています（Address)</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">・売り出し価格が付いています（Price）</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">・売り出し中または既に売れているフラグがあります（IsSele）</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">・一戸建て・アパート・ビルの３タイプがあります。（Type）</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">これをクラスで表すと</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; class House</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; public House(int address, int price, bool isSale, HouseType type)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Address = address;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Price = price;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IsSale = isSale;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Type = type;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; public int Address &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; public int Price &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; public bool IsSale &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; public HouseType Type &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; enum HouseType</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; Single,</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; Apartment,</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; Building,</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">と書くことにしました。さらに、実際の家々を表現するために東から物件を列挙する事ができるコレクションクラス（今回のサンプルコードでは実際には入れた順になっています。）を作成します。今回はZ地区に関する情報を取得する</span><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">GetAreaZ</span><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">メソッドを用意しています。</span><span style="color: rgb(51, 51, 51); line-height: 19px; ">MyList&lt;T&gt;クラスはIEnumerableインターフェイスを継承するジェネリッククラスです。</span><span style="color: rgb(51, 51, 51); line-height: 19px; ">MyList&lt;T&gt;クラスの詳細に関してはSource and Projectをご覧ください。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; class HouseCollection : MyList&lt;House&gt;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public static HouseCollection GetAreaZ()</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return new HouseCollection</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#123;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(1, 100, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(2, 150, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(3, 90, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(4, 3000, true, HouseType.Building),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(5, 2000, false, HouseType.Apartment),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(6, 100, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(5, 2000, true, HouseType.Apartment),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(6, 170, false, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(7, 3000, false, HouseType.Apartment),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(8, 2500, false, HouseType.Apartment),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(9, 20000, true, HouseType.Building),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(10, 200000, false, HouseType.Apartment),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(11, 10000, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;new House(12, 1000, true, HouseType.Single),</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#125;;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">さて、このZ地区の物件の一覧を見たいユーザがいました。彼の要求は以下の通りです。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">・一覧表示であること。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">・各物件の「タイプ」「住所」「値段」が表示されていること。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">・一戸建て・アパート・ビルのそれぞれのタイプ別に分かれていること。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">・各タイプで価格の安い順にならんでいること。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">・売り出し中のものだけがみたい。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">これを満たすようにItemsControlを設定したのが下記のコードです。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></div><div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; class Program</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; [STAThread]</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; static void Main()</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var itemsControl = new ItemsControl();</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; itemsControl.Items.SortDescriptions.Add(new SortDescription("Price", new ListSortDirection()));</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (itemsControl.Items.GroupDescriptions != null)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; itemsControl.Items.GroupDescriptions.Add(new PropertyGroupDescription("Type"));</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; itemsControl.Items.Filter += Filter;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; itemsControl.ItemsSource = HouseCollection.GetAreaZ();</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (House house in itemsControl.Items)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine("Type:" + house.Type + " Address:" + house.Address + " Price:" + house.Price);</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; static bool Filter(object item)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var house = item as House;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (house == null)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return house.IsSale;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">&nbsp; &nbsp; &#125;</span></div></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">実際に、実行してみると</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:3 Price:90</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:6 Price:100</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:1 Price:100</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:2 Price:150</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:12 Price:1000</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Single Address:11 Price:10000</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Apartment Address:5 Price:2000</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Building Address:4 Price:3000</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">Type:Building Address:9 Price:20000</span></div></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">今回は目的は</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">ItemsControl.ItemsSourceにコレクションを代入したら、そのコレクションがソート処理、フィルター処理、グループ化処理が実施されたあと要素が、ItemsControl.Itemsのコレクションの各要素にオブジェクトが設定されることを確認することが目的でしたが、実際に確認できました。</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;">考察を深めていくと、ItemsSourceに設定したIEnumerableインターフェイスを継承するオブジェクトとItemsControl.Itemsで公開されているItemsCollectionの関係は下記の用になっていますことに気づきます。</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><img src="http://img.pro.art55.jp/20111006_4701611.jpg" width="472" height="191" alt="" class="pict"></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px;">GoFのデザインパターンで言うところのProxyパターンになっています。つまり、「ItemsCollectionは、Watcherの知りたいことを、HouseCollectionに代行して答えている。」と解釈できます。また、HouseCollectionにたいしてのソート・フィルタ・グループ化の機能拡張として見ればDecoratorパターンに当たると思います。</span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px;">少し余談がながくなりましたが、とりあえずItemsControl.Itemsの確認がとれたので今回はここでいったん止めます。</span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px;"><a href="http://art55.jp/App/20111006/Art55.ItemsControlItemsDemo20111006_001.zip">Source and Project</a></span></div>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-10-06T21:43:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303868">
    <link>http://pro.art55.jp/?eid=1303868</link>
    <title>【WPF】ItemsControlにアイテムのコレクションを設定するには？２</title>
    <description>JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859------------------------------------------Source and ProjectItemsControlに...</description>
<content:encoded><![CDATA[
<div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255);">-----------------------------------------<br style="margin: 0px; padding: 0px;">本投稿は下記のシリーズの一部です。<br style="margin: 0px; padding: 0px;"><strong style="margin: 0px; padding: 0px;">【WPF】ListBoxやDataGridをグループ化表示する。</strong><br style="margin: 0px; padding: 0px;"><a style="margin: 0px; padding: 0px; color: rgb(231, 96, 158); text-decoration: underline;" href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</a><br style="margin: 0px; padding: 0px;">------------------------------------------</span><br><div><br></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><img src="http://img.pro.art55.jp/20111005_4699202.jpg" width="291" height="178" alt="" class="pict"></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><a href="http://art55.jp/App/20111005/IteratorDemo20111004_001.zip">Source and Project</a></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">ItemsControlにアイテムのコレクションを設定するには、ItemsControl.ItemsSourceプロパティにIEnumerableインターフェイスを継承するオブジェクトを代入すると良いと、前回に紹介しましたが、今回は「IEnumerableインターフェイスを継承するオブジェクト」とは何かに付いて考察してみたいと思います。</span><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">--------------------------------</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-weight: bold;"><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">IEnumerableインターフェイスは、IEnumeratorインターフェイスを継承するオブジェクトを返すGetEnumeratorメソッドを持ちます。</span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumeratorインターフェイスはGofのデザインパターンの一つであるイテレータパターンでいうところのイテレータを表すインターフェイスです。</span></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-weight: bold;"><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">イテレータパターンを正しく実装した場合は、</span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumerableインターフェイスを継承するオブジェクトの各要素は、</span>IEnumeratorインターフェイスを通して、順次呼び出すことができます。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">---------------------------------</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">過去に何度もBlogで紹介したことのある実装ですが、今回はイレテータパターンという観点からクラスの実装を紹介します。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">作りたいオブジェクトは線形リストの構造をもつコレクションです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><img src="http://img.pro.art55.jp/20111004_4699084.jpg" width="574" height="144" alt="" class="pict"></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">線形リストはNodeオブジェクトを上記の図のようにNode同士を連結させた構造を持ちます。Nodeは値と次のNodeを参照するNextプロパティを持ちます。クラスで表現すると下記の通りです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div>namespace Art55Library</div><div>&#123;</div><div>&nbsp; &nbsp; class Node</div><div>&nbsp; &nbsp; &#123;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; public int Value &#123; get; set; &#125;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; public Node Next &#123; get; set; &#125;</div><div>&nbsp; &nbsp; &#125;</div><div>&#125;</div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">今回は、実装を簡単にするため値はint型の値を取ることにしました。このNodeオブジェクトを集約させるオブジェクトが線形リストオブジェクトとなります。線形リストは、Addメソッドで値を最後尾に追加させる事ができます。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">クラスで表現すると</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">using System.Collections;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">namespace Art55Library</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; public class MyList : IEnumerable&nbsp;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public void Add(int value)</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (_first == null)</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _first = new Node &#123;Value = value&#125;;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _last = _first;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _last.Next = new Node &#123;Value = value&#125;;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _last = _last.Next;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; private Node _first;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; private Node _last;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public IEnumerator GetEnumerator()</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return new Iterator(_first);</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">みての通り、</span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumerableインターフェイスを継承させています。よって</span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumerator を明示的に実装しました。（ちなみにyield reaturn構文を使えば、</span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumerator をプログラマが実装する必要はありません。）</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">using System.Collections;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">namespace Art55Library</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; class Iterator : IEnumerator</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public Iterator(Node top)</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _top = top;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; private readonly Node _top;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; private Node _current;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public bool MoveNext()</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (_current == null)</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Reset();</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _current = _current.Next;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return _current != null;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public void Reset()</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _current = _top;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public object Current</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get &#123; return _current.Value; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">ここまででイテレータパターンを実装する線形リストクラスのコードは終わりです。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">実際に、使って見ると（今回はforeach構文は使わずに、外部イテレータで書いています）</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">using System;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">using Art55Library;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">using System.Collections;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">namespace IteratorDemo20111004_001</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; class Program</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; static void Main()</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var list = new MyList &#123;1, 2, 3, 4&#125;;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumerator iterator = list.GetEnumerator();</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; while (iterator.MoveNext())</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(iterator.Current);</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">実行結果</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">1</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">2</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">3</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">4</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">forechを使えば</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (int value in&nbsp;</span>list)</div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(value);</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">と、かけます。イテレータパターンの利点は、クライアントと何らのオブジェクトを集約するオブジェクト間にIEnumerator インターフェイスを一つ挟む事で、個々のオブジェクトをアクセスする共通の方法が提供出来る点です。C#の場合であれば、IEnumerable インターフェイスを継承するクラスであれば、foreach構文で各要素に逐一アクセスできるということになります。（C#の仕様上、IEnumerable を継承していなくてもforeachが使えるケースがあります）</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">余談ですが、MyListクラスの利用するクラスはNodeクラスの存在を知る必要はないため、今回の実装では見えないようにしました。ただし、プログラマはパフォーマンスの要件などにより、Nodeクラスの存在またはそれらの関連を知っておかなければならないかもしれません。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">ということでWPFの世界に戻ります。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">ItemsControl.ItemsSourceプロパティはIEnumerable インターフェイスのオブジェクトを設定可能です。つまり、集約した個々のオブジェクトを何らかの順序で列挙可能な能力をもつ集約オブジェクトをItemsControl.ItemsSourceプロパティへ代入することができます。つまり、コレクションを丸ごと代入することができるということです。</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">using Art55Library;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">namespace MyListViewDemo20111005_001</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; public partial class MainWindow</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; public MainWindow()</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; InitializeComponent();</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;"><br></span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; itemsControl.ItemsSource = new MyList &#123;1, 2, 3, 4,&#125;;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&nbsp; &nbsp; &#125;</span></div><div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">&#125;</span></div></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><img src="http://img.pro.art55.jp/20111005_4699202.jpg" width="291" height="178" alt="" class="pict"></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><a href="http://art55.jp/App/20111005/IteratorDemo20111004_001.zip">Source and Project</a></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">----</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">(2011/10/6)</div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">IEnumerableと書くべきところをIEnumeratorと表記してあるところがありましたので修正しました。</div>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-10-05T00:35:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303867">
    <link>http://pro.art55.jp/?eid=1303867</link>
    <title>【WPF】ItemsControlにアイテムのコレクションを設定するには？</title>
    <description>&amp;nbsp;JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859----------------------------------------------------------------Item...</description>
<content:encoded><![CDATA[
&nbsp;JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a><div><br></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">-----------------------------------------<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">本投稿は下記のシリーズの一部です。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">【WPF】ListBoxやDataGridをグループ化表示する。</strong><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="http://pro.art55.jp/?eid=1303859" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(231, 96, 158); text-decoration: underline; ">http://pro.art55.jp/?eid=1303859</a><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">------------------------------------------</span><br><div><br></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">----------------------</span></div><div><span style="font-weight: bold;">ItemsControl.ItemsSourceプロパティにIEnumerableインターフェースを継承するオブジェクトを代入することにより、ItemsControlのコンテンツを生成することができます。</span><span style="font-weight: bold; ">ItemsControl.ItemsSourceプロパティで指定したコレクションをフィルター処理、ソート処理、グループ化処理が実施されたコレクションが</span><span style="font-weight: bold; ">ItemsControl.Itemsの各アイテムとして公開さ、ListBoxの表示対象となります。</span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">----------------------</span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><br></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">今回はItemsControl.ItemsSourceプロパティに値を代入する方法を紹介します。</span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><br></span></div><div><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumerable collection = ...</div><div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listBox.ItemsSource = collection;</div><div><br></div><div>これだけです。</div><div><br></div></span><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><div>逆にいう「IEnumerable」を継承していないオブジェクトをlist.ItemsSourceプロパティに代入することは出来ません。(nullは代入できますよ)</div><div><br></div><div><br></div><div>------------------</div><div>この投稿を書くのに半月悩みました。細々とした物は別の投稿にしようと思います。</div></span></div></div>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-10-04T21:40:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303866">
    <link>http://pro.art55.jp/?eid=1303866</link>
    <title>【WPF】ICollectionView.GroupDescriptionsを利用せずにグループ化表示２</title>
    <description>JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859------------------------------------------Source and Project方法：ICollect...</description>
<content:encoded><![CDATA[
<div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><div class="jugem_theme">JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></div></span></div><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">-----------------------------------------<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">本投稿は下記のシリーズの一部です。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">【WPF】ListBoxやDataGridをグループ化表示する。</strong><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><a href="http://pro.art55.jp/?eid=1303859" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(231, 96, 158); text-decoration: underline; ">http://pro.art55.jp/?eid=1303859</a><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">------------------------------------------</span><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px;"><img src="http://img.pro.art55.jp/20110918_4674767.jpg" width="506" height="359" alt="" class="pict"><br></span></div><div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><a href="http://art55.jp/App/20110918/ListBoxGroupingDemo20110917_002.zip">Source and Project</a></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', Osaka, Verdana, sans-serif; font-size: small; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">方法：ICollectionView.GroupDescriptionsを利用せずにグループ化表示２<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">--------------------------------------------------------------------------<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-weight: bold; ">ICollectionView.GroupDescriptionsを利用せずグループ化表示は可能です。グループ単位にコレクションを分割し、個別にListBoxに配置することでユーザはグループ化されたリストを認識することができます。<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "></span></span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">--------------------------------------------------------------------------</span></span></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><span style="font-family: 'ヒラギノ角ゴ Pro W3', 'ＭＳ Ｐゴシック', Osaka, Verdana, sans-serif; font-size: small; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></span></span></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;">前回紹介した「</span><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">ICollectionView.GroupDescriptionsを利用せずにグループ化表示」とは別の方法でグループ化表示しようと思います。今回は、グループ単位でListBoxを分けます。ただし、この方法は選択されたオブジェクトの全てを個々のListBoxから単純に得られなくなるという弊害が出てきますが、用意するデータ側で選択された状態を保持しListBoxと同期させることで簡単に選択されたオブジェクトを取得できるようになります。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px;"><span style="color: rgb(0, 0, 0); line-height: normal; "><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); ">早速、サンプルコードを紹介します。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); line-height: 19px; background-color: rgb(255, 255, 255); "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="background-color: rgb(255, 255, 255); "><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">using System.Collections.Generic;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">using System.Collections.ObjectModel;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">using System.ComponentModel;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">using System.Linq;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">namespace ListBoxGroupingDemo20110917_002</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; public class Prefecture : INotifyPropertyChanged</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; static Prefecture()</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Prefectures = new ReadOnlyCollection&lt;Prefecture&gt;(new List&lt;Prefecture&gt;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Prefecture("北海道", "北海道"),</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Prefecture("鹿児島県", "九州"),</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; new Prefecture("沖縄県", "沖縄")</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;);</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private static readonly ReadOnlyCollection&lt;Prefecture&gt; Prefectures;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public static ReadOnlyCollection&lt;Prefecture&gt; GetAllPrefectures()</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return Prefectures;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private Prefecture(string name, string groupname)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Name = name;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GroupName = groupname;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public PrefectureGroup GetPrefectureGroup()</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return PrefectureGroup.GetAllPrefectureGroup().FirstOrDefault(pg =&gt; pg.GroupName == GroupName);</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public string Name &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public string GroupName &#123; get; private set; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public int ColumnIndex</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return GetPrefectureGroup().Prefectures.Select(p =&gt; p.Name).ToList().IndexOf(Name) + 1;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private bool _isSelected;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public bool IsSelected</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get &#123; return _isSelected; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (_isSelected != value)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _isSelected = value;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PrefectureGroup prefectureGroup = GetPrefectureGroup();</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefectureGroup.MargeIsSelected();</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OnPropertyChanged("IsSelected");</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public event PropertyChangedEventHandler PropertyChanged;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public void OnPropertyChanged(string proerptyName)</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PropertyChangedEventHandler handler = PropertyChanged;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (handler != null)&nbsp;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; handler(this, new PropertyChangedEventArgs(proerptyName));</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&nbsp; &nbsp; &#125;</span></div><div><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">&#125;</span></div></span><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; background-color: rgb(255, 255, 255); ">&nbsp;</span><span style="background-color: rgb(255, 255, 255); "><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; ">プロパティの変更通知をサポートするPrefecture（都道府県クラス）を用意します。このクラスはName（県名）とGroupName（地方名）とIsSelected（選択状態）をプロパティとして公開しています。</div><div style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; "><br></div></span><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; background-color: rgb(255, 255, 255); ">Prefectureに対してグループ化した概念である地方を表すクラスを別途用意しました。それが下記のコードです。</span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="color: rgb(51, 51, 51); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; line-height: 19px; background-color: rgb(255, 255, 255); "><br></span></div><div style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><span style="background-color: rgb(255, 255, 255); font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><div style="color: rgb(51, 51, 51); line-height: 19px; ">using System.Collections.Generic;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">using System.Collections.ObjectModel;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">using System.ComponentModel;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">using System.Linq;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">namespace ListBoxGroupingDemo20110917_002</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; public class PrefectureGroup : INotifyPropertyChanged</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; static PrefectureGroup()</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; List&lt;PrefectureGroup&gt; prefectureGroups = Prefecture.GetAllPrefectures().GroupBy(p =&gt; p.GroupName).Select(</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; group =&gt; new PrefectureGroup(group.Key, group.ToList())).ToList();</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GetAllPrefectureGroups = new ReadOnlyCollection&lt;PrefectureGroup&gt;(prefectureGroups);</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public PrefectureGroup(string groupName, List&lt;Prefecture&gt; groupingPrefectures)</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; GroupName = groupName;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Prefectures = new ReadOnlyCollection&lt;Prefecture&gt;(groupingPrefectures);</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private static readonly ReadOnlyCollection&lt;PrefectureGroup&gt; GetAllPrefectureGroups;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public static ReadOnlyCollection&lt;PrefectureGroup&gt; GetAllPrefectureGroup()</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return GetAllPrefectureGroups;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public string GroupName &#123; get; private set; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public ReadOnlyCollection&lt;Prefecture&gt; Prefectures &#123; get; private set; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private bool _isSelected;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public bool IsSelected</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; get &#123; return _isSelected; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; set</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (_isSelected != value)</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _isSelected = value;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllSelectedCore(value);</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OnPropertyChanged("IsSelected");</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public void MargeIsSelected()</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (Prefectures.All(p =&gt; p.IsSelected))</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _isSelected = true;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OnPropertyChanged("IsSelected");</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else if (Prefectures.Any(p =&gt; !p.IsSelected))</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; _isSelected = false;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; OnPropertyChanged("IsSelected");</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public void AllSelect()</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllSelectedCore(true);</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public void AllUnSelect()</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; AllSelectedCore(false);</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; private void AllSelectedCore(bool isSelect)</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; foreach (Prefecture prefecture in Prefectures)</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; prefecture.IsSelected = isSelect;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public event PropertyChangedEventHandler PropertyChanged;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; public void OnPropertyChanged(string proerptyName)</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#123;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PropertyChangedEventHandler handler = PropertyChanged;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (handler != null)&nbsp;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; handler(this, new PropertyChangedEventArgs(proerptyName));</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&nbsp; &nbsp; &#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; ">&#125;</div><div style="color: rgb(51, 51, 51); line-height: 19px; "><br></div><div style="color: rgb(51, 51, 51); line-height: 19px; ">PrefectureGroupクラスは地方を表すクラスです。プロパティの変更通知をサポートします。GroupName（地方名）プロパティと、地方に属する都道府県をコレクションであるPrefecturesプロパティと、その地方全体が選択されているという事を表すIsSlectedプロパティを公開しています。</div></span></div></span></span></div></div><p><a href="http://pro.art55.jp/?eid=1303866">続きを読む &gt;&gt;</a></p>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-09-18T02:58:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303865">
    <link>http://pro.art55.jp/?eid=1303865</link>
    <title>【WPF】ICollectionView.GroupDescriptionsを利用せずにグループ化表示</title>
    <description>JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859------------------------------------------Source and Project方法：ICollect...</description>
<content:encoded><![CDATA[
<div class="jugem_theme" style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></div><div class="jugem_theme" style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></div><div class="jugem_theme" style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">-----------------------------------------<br>本投稿は下記のシリーズの一部です。<br><strong>【WPF】ListBoxやDataGridをグループ化表示する。</strong><br><a href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</a><br>------------------------------------------</div><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><img src="http://img.pro.art55.jp/20110917_4673859.jpg" width="556" height="381" alt="" class="pict"></p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><a href="http://art55.jp/App/20110917/ListBoxGroupingDemo20110917_001.zip">Source and Project</a></p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></p><p><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px;">方法：ICollectionView.GroupDescriptionsを利用せずにグループ化表示<br>--------------------------------------------------------------------------<br><span style="font-weight: bold;">ICollectionView.GroupDescriptionsを利用せずグループ化表示は可能です。グループ化表示するにはListBox.Itemsの要素となるオブジェクトを事前にグループ化された状態でソートし各要素がどのグループに属しているのか情報を公開させる必要があります。それをStyleなどを利用し、グループ化されているとユーザが認識できるように表現することで、グループ化表示が実現できます。<br></span></span><span style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">--------------------------------------------------------------------------</span></p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">先日、紹介したとおりItemsControl.Itemsで公開されているItemsCollectionにAddメソッド経由でアイテムを挿入した場合、ItemsControlが提供している機能であるICollectionView.GroupDescriptions を利用したグループ化表示はサポートされていません。ただし、グループ化された状態を画面に表示できないかというと、そんな事はまったくなく、柔軟な表現力をもつWPFの機能を駆使すれば、グループ化は実現できます。今回は、その一例を紹介したいとおもいます。<br><br>たとえば都道府県<br><br>北海道<br>青森県<br>岩手県<br>宮城県<br>秋田県<br>山形県<br>福島県<br>茨城県<br>栃木県<br>群馬県<br>埼玉県<br>千葉県<br>東京都<br>神奈川県<br>新潟県<br>富山県<br>石川県<br>福井県<br>山梨県<br>長野県<br>岐阜県<br>静岡県<br>愛知県<br>三重県<br>滋賀県<br>京都府<br>大阪府<br>兵庫県<br>奈良県<br>和歌山県<br>鳥取県<br>島根県<br>岡山県<br>広島県<br>山口県<br>徳島県<br>香川県<br>愛媛県<br>高知県<br>福岡県<br>佐賀県<br>長崎県<br>熊本県<br>大分県<br>宮崎県<br>鹿児島県<br>沖縄県<br><br>この中から出身県を選ばせるアプリケーションがあったとします。ユーザーがそのアプリケーションに対して小慣れているのであれば、４７の中から１つを選ぶのはたいした話ではありません。しかし、不慣れな場合は意外に面倒な作業となってしまいます。まず、北からソートが掛かって、東北、関東などのグループでソートが掛かっているというのは大抵のアプリケーションで暗黙の仕様だと思います。たとえば「北海道」を探す場合、おそらく一番上にあるのですぐに見つけられれます。山形などの東北地方の県も同じ理由で見つけられると思います。逆に一番下にある沖縄や、鹿児島などもすぐに見つけられれるでしょう。しかし、中間にあるような県は探しにくいものです（と、私はよく経験します）<br><br>下記の画像は「島根県」を探している状況です。<br><img class="pict" alt="" src="http://img.pro.art55.jp/20110917_4673474.jpg" width="399" height="269"><br>上から順にスクロールさせて今、自分がどの県あたりを見ているのか確認しながら徐々にさげていきます。中間を超えてようやく発見することができます。<br><br>県名を並べただけでは、47都道府県の中から１県を探すのは意外に難しい作業だと私は思います。そこで補助情報を画面追加し、ユーザが自然に活用できる状況にしたいと思います。<br><br>今回は地方名でグループ化し、そのグループで色分けしたいと思います。<br><br>ListBoxのアイテムとなるクラスは下記のようにします。<br><br>using System.Collections.Generic;<br>using System.Collections.ObjectModel;<br>using System.Windows.Media;<br>using System.Linq;<br>using Art55.WpfLibs;</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">namespace ListBoxGroupingDemo20110917_001<br>&#123;<br>&nbsp;&nbsp;&nbsp; public class Prefecture<br>&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static Prefecture()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Prefectures = new ReadOnlyCollection&lt;Prefecture&gt;(new List&lt;Prefecture&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("北海道", "北海道"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("青森県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("岩手県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("宮城県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("秋田県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("山形県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("福島県", "東北"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("茨城県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("栃木県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("群馬県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("埼玉県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("千葉県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("東京都", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("神奈川県", "関東"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("新潟県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("富山県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("石川県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("福井県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("山梨県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("長野県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("岐阜県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("静岡県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("愛知県", "中部"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("三重県", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("滋賀県", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("京都府", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("大阪府", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("兵庫県", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("奈良県", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("和歌山県", "近畿 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("鳥取県", "中国 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("島根県", "中国 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("岡山県", "中国 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("広島県", "中国 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("山口県", "中国 "),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("徳島県", "四国"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("香川県", "四国"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("愛媛県", "四国"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("高知県", "四国"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("福岡県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("佐賀県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("長崎県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("熊本県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("大分県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("宮崎県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("鹿児島県", "九州"),<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new Prefecture("沖縄県", "沖縄")<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;);</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;string&gt; groupNameList = Prefectures.GroupBy(p =&gt; p.GroupName).Select(g =&gt; g.Key).ToList();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;Brush&gt; brushList = ColorUtils.GetGradationColorList(Colors.LightSkyBlue, Colors.LightCoral, groupNameList.Count())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Select(c =&gt; new SolidColorBrush(c))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Cast&lt;Brush&gt;().ToList();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BackgroundSetting = new Dictionary&lt;string, Brush&gt;();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int index = 0; index &lt; groupNameList.Count; index++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; BackgroundSetting[groupNameList[index]] = brushList[index];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static readonly ReadOnlyCollection&lt;Prefecture&gt; Prefectures; </p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static ReadOnlyCollection&lt;Prefecture&gt; GetAllPrefectures()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Prefectures;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private Prefecture(string name, string groupname)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name = name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GroupName = groupname;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Name &#123; get; private set; &#125;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string GroupName &#123; get; private set; &#125;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public Brush Background<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return BackgroundSetting[GroupName];<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private static readonly Dictionary&lt;string, Brush&gt; BackgroundSetting;<br>&nbsp;&nbsp;&nbsp; &#125;<br>&#125;<br><br>Prefectureクラスは県を表現するクラスです。Nameが県名、GroupNameが地方名、Backgroundが地方名で一意に決まる色を公開します。色は青から赤までの色相を９分割させた色のどれかが設定されています。<br><br>PrefectureオブジェクトをListBoxの要素とする事を前提としたXAMLを記述します。ListBoxの表示にはName（県名）、ListBoxItemの背景色が地方名でグループ化された色になるようにStyleで設定します。<br><br>&lt;Window x:Class="ListBoxGroupingDemo20110917_001.MainWindow"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">http://schemas.microsoft.com/winfx/2006/xaml/presentation</a>"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:x="<a href="http://schemas.microsoft.com/winfx/2006/xaml">http://schemas.microsoft.com/winfx/2006/xaml</a>"<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title="MainWindow" Height="350" Width="525"&gt;<br>&nbsp;&nbsp;&nbsp; &lt;Grid&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ListBox x:Name="listBox" DisplayMemberPath="Name"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ListBox.ItemContainerStyle&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Style TargetType="ListBoxItem"&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Setter Property="Background" Value="&#123;Binding Background&#125;" /&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Style&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ListBox.ItemContainerStyle&gt;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ListBox&gt;<br>&nbsp;&nbsp;&nbsp; &lt;/Grid&gt;<br>&lt;/Window&gt;<br><br>今回はListBox.Items.Add経由でわざと要素を追加します。（そもそも県をコレクションしているのでItemsSourceから入れることも可能です）<br><br>namespace ListBoxGroupingDemo20110917_001<br>&#123;<br>&nbsp;&nbsp;&nbsp; public partial class MainWindow<br>&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public MainWindow()<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (Prefecture prefecture in Prefecture.GetAllPrefectures())<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listBox.Items.Add(prefecture);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<br>&nbsp;&nbsp;&nbsp; &#125;<br>&#125;<br><br>これを実行してみると<br><br><img class="pict" alt="" src="http://img.pro.art55.jp/20110917_4673859.jpg" width="556" height="381"><br><br>ユーザは上から順に県を見ていくはずです。たとえば東京を東京を発見します。東京は関東なので同一の色が設定されている県をすべて目視でチェックする必要がなくなり読みとばす事ができます。他の地方でもどうような事が言えます。そして、たとえば「広島県」を見つけたとします。広島県は島根県と同じ中国地方ですから、同一背景色内のどこかに「島根県」があることが（多分）直感的にわかると思います。<br><br>今回は「GroupDescriptionsプロパティ」を利用せずに最終的にListBoxがグループ化されたような表示をすることを目指してコードを記述してみましたが、実現できているでしょうか？今回考慮した２点です。<br><br><strong>コレクションをグループ化する。</strong><br>コレクションをグループ化させる場合、グループ化させた状態でコレクションをソートし、コレクションの要素一つ一つにどのグループに属しているのか情報を公開すればいいだけです。<br><strong>グループされた情報を表現する。</strong><br>グループ化したコレクションをビジュアル的にどう見せるかは、問題解決に最良な方法を選択すればいいだけです（パフォーマンスなどの別の問題が発生することは多々ありますが・・・）<br><br>ICollectionView.GroupDescriptionsプロパティを利用すれば、上記「コレクションをグループ化する」という機能をある程度汎用的なルールで指定出来ることができます。またItemsCollection.GroupStyleプロパティを指定することで、グループ化表示した場合のみに有効な表現方法を指定することもできます。とはいえ、それを利用せずともグループ化表示はできますよって事を今回は紹介したかったのですが、どうでしょうか？</p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><a href="http://art55.jp/App/20110917/ListBoxGroupingDemo20110917_001.zip">Source and Project</a></p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; "><br></p><p style="font-family: Verdana, 'qMmpS Pro W3', 'Hiragino Kaku Gothic Pro', CI, Meiryo, 'lr oSVbN', Osaka, Arial, Helvetica, sans-serif; font-size: 12px; ">-------<br>追記）ソートは安定ソートがおすすめです。</p>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-09-17T15:46:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303864">
    <link>http://pro.art55.jp/?eid=1303864</link>
    <title>【WPF】レイアウトとStyleについて</title>
    <description>「レイアウトとStyleについて」の記事をまとめて行きたいので本投稿を集約する。---------まだ、投稿はありません(2011/9/16)</description>
<content:encoded><![CDATA[
「レイアウトとStyleについて」の記事をまとめて行きたいので本投稿を集約する。<BR><BR>---------<BR>まだ、投稿はありません(2011/9/16)
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-09-16T04:10:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303863">
    <link>http://pro.art55.jp/?eid=1303863</link>
    <title>【WPF】 ItemsControlにアイテムを個別に設定するには？</title>
    <description>JUGEMテーマ：コンピュータ-----------------------------------------本投稿は下記のシリーズの一部です。【WPF】ListBoxやDataGridをグループ化表示する。http://pro.art55.jp/?eid=1303859------------------------------------------
Source and Project方法：ItemsC...</description>
<content:encoded><![CDATA[
<DIV class=jugem_theme>JUGEMテーマ：<A href="http://jugem.jp/theme/c247/13/" target=_blank>コンピュータ</A><BR><BR>-----------------------------------------<BR>本投稿は下記のシリーズの一部です。<BR><STRONG>【WPF】ListBoxやDataGridをグループ化表示する。</STRONG><BR><A href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</A><BR>------------------------------------------</DIV>
<P><IMG class=pict alt="" src="http://img.pro.art55.jp/20110916_4671684.jpg" width=450 height=261><BR><A href="http://art55.jp/App/20110916/ListBoxItems20110916_001.zip" target=_blank>Source and Project<BR></A><BR>方法：ItemsControlにアイテムを個別に設定するには？<BR><BR><STRONG>ItemsControl.Itemsプロパティで公開されているコレクションに対して、表示要素となるアイテムを一つずつAddメソッドで追加する。この方法では、ICollectionView.GroupDescriptions プロパティを利用したグループ化表示はサポートされておらず、ICollectionView.CanGroup プロパティ は常にfalseを返します。<BR></STRONG><BR>サンプルコード<BR><BR>&lt;Window x:Class="ListBoxItems20110916_001.MainWindow"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns="<A href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">http://schemas.microsoft.com/winfx/2006/xaml/presentation</A>"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; xmlns:x="<A href="http://schemas.microsoft.com/winfx/2006/xaml">http://schemas.microsoft.com/winfx/2006/xaml</A>"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Title="MainWindow" Height="350" Width="525"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;Grid Margin="10"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ListBox x:Name="listBox"&gt;&lt;/ListBox&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/Grid&gt;<BR>&lt;/Window&gt;<BR><BR>using System;<BR>using System.Windows.Controls;<BR>using System.Windows.Media.Imaging;</P>
<P>namespace ListBoxItems20110916_001<BR>&#123;<BR>&nbsp;&nbsp;&nbsp; public partial class MainWindow<BR>&nbsp;&nbsp;&nbsp; &#123;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public MainWindow()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listBox.Items.Add("和名: 黄鉄鉱"); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listBox.Items.Add("英名: Pyrite");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listBox.Items.Add(new Image &#123;Source = new BitmapImage(new Uri(@"Image&yen;pyrite.jpg", UriKind.Relative))&#125;);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<BR>&nbsp;&nbsp;&nbsp; &#125;<BR>&#125;<BR><BR>ItemsControl.Itemsプロパティで公開されているItemsCollectionオブジェクトに対してAddメソッド経由で表示用項目を直接、追加することが可能です。ＩｔｅｍｓＣｏｌｌｅｃｔｉｏｎはICollectionViewを継承しており、ICollectionView.GroupDescriptions プロパティからグループ化を設定することは可能です。ただし、CanGroup プロパティが常にfalseであるため、グループ化表示されません（設定は可能だが実行はされないという点が注意する必要があります）。また、ItemsSourceプロパティを利用している場合は、ItemsControl.Itemsが読み取り専用になっているため、追加、削除は出来ません。ItemsSourceをいったんnullにすることで、読み取り専用は解除されます。<BR><BR>上記のサンプルコードのとおり、追加するオブジェクト同士が「コレクションの要素である」という関係でなくても、追加することができます。逆にＩｔｅｍｓＳｏｕｒｃｅプロパティを利用する場合は、コレクションを丸ごと代入するためコレクション(IColletionではなくIEnumerable)である必要があります。<BR><BR>ItemsControl.Items.Add()を利用した場合、グループ化表示はサポートされていません。<BR><BR>実際にコードを書いて試してみると<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void OnShowSupporttingGroupby(object sender, System.Windows.RoutedEventArgs e)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#123;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show(listBox.Items.CanGroup ? "グループ化表示がサポートされています。" : "グループ化表示がサポートされていません。");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#125;<BR><BR><IMG class=pict alt="" src="http://img.pro.art55.jp/20110916_4671684.jpg" width=450 height=261><BR><BR>私がMSDNを読んだ限りでは、そのような内容が書かれている内容が見つからず（内容がおかしい箇所は見つけたのですが）、実は、この投稿を書く上で、CanGroupプロパティが常にfalseを返すと言い切っていいのかどうか迷いました。しかし、ItemsSourceプロパティからコレクションを代入した際に実施されるグループ化の処理を考慮すれば、おそらくグループ化がサポート<BR>されていないのは必然と判断したので、そう書くことにしました。これを書くのに一週間以上悩みました（笑）ItemsSourceプロパティの利用に関しては後日別途投稿します。<BR><BR>また、注意していただきたいのがGroupDescriptions プロパティによるグループ化表示が出来ない訳であって、それ以外の方法でグループ化されているように表示することは可能であるという点です。アイデアはいくつかありますので、余裕があれば、その当たりも紹介させていただきます。<BR><BR><A href="http://art55.jp/App/20110916/ListBoxItems20110916_001.zip" target=_blank>Source and Project</A><BR><BR>-----------------------------------------<BR>本投稿は下記のシリーズの一部です。<BR><STRONG>【WPF】ListBoxやDataGridをグループ化表示する。</STRONG><BR><A href="http://pro.art55.jp/?eid=1303859">http://pro.art55.jp/?eid=1303859</A><BR></P>
]]></content:encoded>
    <dc:subject>WPF</dc:subject>
    <dc:date>2011-09-16T02:17:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303861">
    <link>http://pro.art55.jp/?eid=1303861</link>
    <title>［雑記］ スマートフォンから書いてみる。</title>
    <description>JUGEMテーマ：コンピュータ&amp;nbsp;スマートフォンから書いてみる。デスクトップみたいに書けるね。</description>
<content:encoded><![CDATA[
<div class="jugem_theme">JUGEMテーマ：<a href="http://jugem.jp/theme/c247/13/" target="_blank">コンピュータ</a></div><br><br>&nbsp;スマートフォンから書いてみる。<br>デスクトップみたいに書けるね。<br><br>
]]></content:encoded>
    <dc:subject></dc:subject>
    <dc:date>2011-09-08T18:18:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

  <item rdf:about="http://pro.art55.jp/?eid=1303860">
    <link>http://pro.art55.jp/?eid=1303860</link>
    <title>【雑記】Windows Phone (IS12T)の液晶の色むら。その後</title>
    <description>JUGEMテーマ：コンピュータ----------------------------これは日記です。私の主観で書かれたものであり、多少の事実と異なる可能性もありますが、私自身は真実であると思っています。ただ私自身はただのユーザであり、携帯電話の品質に対して公正な立場から発言している...</description>
<content:encoded><![CDATA[
<DIV class=jugem_theme>JUGEMテーマ：<A href="http://jugem.jp/theme/c247/13/" target=_blank>コンピュータ<BR></A></DIV><BR>----------------------------<BR>これは日記です。私の主観で書かれたものであり、多少の事実と異なる可能性もありますが、<BR>私自身は真実であると思っています。ただ私自身はただのユーザであり、携帯電話の品質に対して<BR>公正な立場から発言しているわけではありませんので、多少ご配慮いただいてから、読んでいただけると助かります。<BR>----------------------------<BR>&nbsp;<BR>8月25日購入したWindows Phone (IS12T)の液晶に色むらがあり、これは不具合だろと思いましてAUショップへ修理依頼をだしました。ショップの店員は、仕様と言うことで対応しない可能性があるなど、修理依頼を出すなといわんばかりの対応だったのですが、「とっとと修理しろや」と強引に修理依頼を出したのが先日の話。<BR><BR>日が変わってしまったので、一昨日なりますが、その修理が完了したとのことで、取りに行くと<BR><BR>「表示を制御する回路が故障していましたので、検査積みの基盤と交換しました。」<BR><BR>という内容の文章と、修理済みの携帯をわたされ、本当に直っているのか確認もせずにサインしろなんて言われたので「確認が先だろ」みたいな内容をやんわりと店員に告げ、確認してみると<BR><BR>え〜と・・・青いムラは消えたんですが・・・液晶が暗いし・・・黄色いし・・・おい！何を確認したんだ？とはらわた煮えくりかえりそうになりながら、「画面がくらくなってますよ」とやんわりと店員さんに教えてあげて、店頭に置いてあるデモ機と比較してもらうと・・・<BR><BR>やっぱり暗いですねと合意が得られました。<BR><BR>そう言うことなので、新品と交換してもらえることになりました。「てか、はじめからそうせーよ！」って内心は思っていたのですが、そういうのは秘密です。<BR><BR>が、ここからが本当の戦いの始まりでした。何というか敵が誰かわかりません。もうSHOPの店員さんが敵なのか味方なのかもわかりません。とにかく戦いが始まったんです。<BR><BR>新しい箱を開けて起動・・・まあ、大方の予想通り・・・青いムラが・・・店員さんは、そんな事は起こらないだろうと思っていたらしく、その後の手続きを進め、結構あたふたしてました。<BR><BR>で、二つ目、これも店員さん・・・「そんな馬鹿な！」と小声で気迫ある発言！・・・えーと演技なのかな？演技じゃないよねと・・・記憶が曖昧ですが・・・もう一台あけたかな？すでにSHOPのシャッターは閉められ、私そろそろ帰りたいんだけどなーってソワソワ<BR><BR>なので「次の日にくるから、それまで用意しとけや！ちゃんとしたやつ！」っと言ったつもりなんですが、やんわりとね。で、その日は帰りました。<BR><BR>そして、昨日のことです。名前を伝えたら、分かるようにしておきますから、なんて言われたので、「昨日の○○です」と、伝えると・・・「は？」みたいな顔をされ・・・「後ろで、例の・・・」とか、えーと聞こえてますが・・・いや、聞き間違いだろうと思います。耳はそんなに良くないから。<BR><BR>で、２箱と、はじめっから開いてるヤツ1台をもってきて、起動って「おい！中身確認いまからかよ」ってまあ思ったんですが、Windows Phoneが本当にほしいのでぐっと我慢しながら、つきあいました。<BR><BR>一台目・・・青い！<BR>二台目・・・青い！<BR><BR>同じ製造ロットなので全部青いじゃないですか？なんて言ってみたんですが、もう一台あるのでと、起動してみると・・・<BR><BR>三台目・・・青くない！青くない！・・・でも、何か暗い・・・えっと・・・まさかね。<BR><BR>もう正直、根気がなくなっていたので、これで良いですと・・・手続きを進めていくと<BR><BR>店員が慌て出す。めっちゃ慌ててました。店員が奥の方に行ってしまったので、三台目の携帯をみてみると、<BR><BR>なんと！<BR><BR>なんと！！！<BR><BR>上部に充電用のUSB端子があるんですけどね。<BR><BR>なんと！<BR><BR>なんと！！！<BR><BR><STRONG><FONT size=5>USBの基盤がむき出しになってました・・・！<BR></FONT></STRONG><BR>修理した際に分解して、組み立てたときにパーツ入れ忘れたんですね・・・。いや、そんな事は決しておこらないよね。うん。製造ラインで何かあったんだよ。これ新品・・・新品だよね。<BR><BR><STRONG><FONT size=5>どっちにしてもだめだめだろ！おい！</FONT></STRONG><BR><BR>改めまして・・・・新品がきました。箱に、はいってますし、袋の中に入ってます。よくよく見るとAUの携帯の箱って袋に入ってるけど、テープ貼ってないんですね。出して戻せばまた新品ですかね（笑）<BR><BR>もう数えるのも億劫になりながら、<BR><BR>４台目・・・ちょっとだけ青い！<BR>５台目・・・青くないようなきがするな<BR>これでいいじゃないかなーみたいな事を言ってみたんですが、店員さん、もう一台ありますからと、開けてみる。<BR><BR>今、家にいます。<BR><BR>始めてのスマートフォンWindows Phone (IS12T)があります。すばらしいです。なんと言っても液晶がめっちゃ綺麗です。前、持ってた携帯はカメラ付いてなかったので、カメラが付いていることも好感がもてます。そして、写した物を綺麗な液晶でみれますからね。最高ですよ。動画サイトを閲覧したり、ニュースサイトみたり電話として使うのではなく、目を使って情報を得られるっていうのが、スマートフォンの醍醐味じゃないかと思ってるんです。まだ、そんなに使ってませんけどね。なので、こんな美しい液晶で情報を閲覧できるなんて、とっても幸せなことだと思います。<BR><BR><BR><BR><BR>って、おい！なんか疲れたぞ。
]]></content:encoded>
    <dc:subject>コンピュータ全般</dc:subject>
    <dc:date>2011-09-08T01:41:00+09:00</dc:date>
    <dc:creator>art55</dc:creator>
    <dc:publisher>JUGEM</dc:publisher>
    <dc:rights>art55</dc:rights>
<taxo:topics>
<rdf:Bag>
<rdf:li rdf:resource="http://jugem.jp/contents/theme.php?theme=13" />
</rdf:Bag>
</taxo:topics>
  </item>

</rdf:RDF>
