<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>SilverLight</title><link>http://blogs.wankuma.com/esten/category/2170.aspx</link><description>どシロウトなシーラカンスが足掻いてみる記録</description><managingEditor>片桐　継（Tugu Katagiri）</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>Canvas と Grid の違い</title><link>http://blogs.wankuma.com/esten/archive/2010/06/27/190645.aspx</link><pubDate>Sun, 27 Jun 2010 15:10:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2010/06/27/190645.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/190645.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2010/06/27/190645.aspx#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/190645.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/190645.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://blogs.wankuma.com/naka/archive/2010/06/27/190644.aspx"&gt;GridでできることはGridで&lt;br&gt;http://blogs.wankuma.com/naka/archive/2010/06/27/190644.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;のお話なんだけれど、単純な話、Gridでできることってなんなん？と思ったのね。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;色々と思考錯誤の結果の結論としては、&lt;/p&gt; &lt;p&gt;PowerPoint と　Excel　の違いだと思った。&lt;/p&gt; &lt;p&gt;Canvasは、子要素を座標指定で配置できる&lt;/p&gt; &lt;p&gt;Gridは、格子で仕切った中に子要素を配置して、全体が決まる。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;画像の拡大縮小とか、こう、子要素に対して、&lt;/p&gt; &lt;p&gt;あんなことやこんなことをしたいって時や&lt;/p&gt; &lt;p&gt;ウインドウのサイズ変更とかある場合には、&lt;/p&gt; &lt;p&gt;Gridを使って、サイズの変更や配置の最適化を任せてしまうのが&lt;/p&gt; &lt;p&gt;きっと良いのだと思う。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;そういうこともなくて、単純な表示だけで&lt;/p&gt; &lt;p&gt;機能の拡張もないのなら、Canvasできっと十分。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;今回の私の作りたいWPFは、Canvasで十分だけどねｗ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/190645.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>はじめて、WPFってのを真面目に作った</title><link>http://blogs.wankuma.com/esten/archive/2010/06/27/190643.aspx</link><pubDate>Sun, 27 Jun 2010 12:38:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2010/06/27/190643.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/190643.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2010/06/27/190643.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/190643.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/190643.aspx</trackback:ping><description>&lt;p&gt;いや、作らなきゃなーなんて思ってて、作らなきゃならないことにはならなかったから手つかず。&lt;/p&gt; &lt;p&gt;でも諸事情でWPFいるなーっとなったので、作ってみることにした。&lt;/p&gt; &lt;p&gt;最初はお約束でXAMLからだよね。＜何か間違ってるかもしれないｗ&lt;/p&gt; &lt;p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:ecd5d032-f6d3-4c27-97b7-0e2bcd299d58" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="xml:nocontrols"&gt;&amp;lt;Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="はじめてなのよ" AllowsTransparency="True"
    WindowStyle="None" Background="Transparent" Width="300" Topmost="True"&amp;gt;
    &amp;lt;Grid&amp;gt;
        &amp;lt;Label Margin="12,12,12,20" Name="Scripting"
           FontSize="30" Width="254" HorizontalAlignment="Center"
           VerticalAlignment="Center" Panel.ZIndex="1"
           Height="48"&amp;gt;ほげー&amp;lt;/Label&amp;gt;
        &amp;lt;Image Name="Prompt" Stretch="None"
           Source="C:\work\test\prompt.png" VerticalAlignment="top"
           Width="278" Height="79" /&amp;gt;
        &amp;lt;Image Name="DispImage" Stretch="None"  /&amp;gt;
    &amp;lt;/Grid&amp;gt;
&amp;lt;/Window&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;やりたかったことは、Scriptingと、Promptは重なった状態で、その下にDispImageを表示したかったの。&lt;/p&gt;
&lt;p&gt;でも&lt;font color="#ff0000"&gt;&lt;font color="#000000"&gt;、&lt;/font&gt;&lt;strong&gt;&amp;lt;Grid&amp;gt;使うと、XAMLデザイン画面では重なっているのに、実行すると重ならない&lt;/strong&gt;&lt;/font&gt;の。&lt;/p&gt;
&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:0fcc0998-52cf-4293-be9a-5c0e9264e03f" class="wlWriterEditableSmartContent"&gt;&lt;pre name="code" class="xml:nocontrols"&gt;&amp;lt;Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="はじめてなのよ" AllowsTransparency="True"
    WindowStyle="None" Background="Transparent" Width="300" Topmost="True"&amp;gt;
    &amp;lt;Canvas&amp;gt;
        &amp;lt;Label Margin="12,12,12,20" Name="Scripting"
           FontSize="30" Width="254" HorizontalAlignment="Center"
           VerticalAlignment="Center" Panel.ZIndex="1"
           Height="48"&amp;gt;ほげー&amp;lt;/Label&amp;gt;
        &amp;lt;Image Name="Prompt" Stretch="None"
           Source="C:\work\test\prompt.png" VerticalAlignment="top"
           Width="278" Height="79" /&amp;gt;
        &amp;lt;Image Name="DispImage" Stretch="None" Canvas.Left="0" Canvas.Top="80" /&amp;gt;
    &amp;lt;/Canvas&amp;gt;
&amp;lt;/Window&amp;gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;font color="#008000"&gt;&lt;strong&gt;&amp;lt;Grid&amp;gt;を&amp;lt;Canvas&amp;gt;に変えたら、重なった&lt;/strong&gt;&lt;/font&gt;。&lt;/p&gt;
&lt;p&gt;新規XAMLでいきなり&amp;lt;Grid&amp;gt;って書いてるから、書き変えちゃいけないのかしら？とか思うじゃないかｗ&lt;/p&gt;
&lt;p&gt;目的一つ達成。&lt;/p&gt;
&lt;p&gt;慣れてくると、面白いね、WPFって。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/190643.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>MVVMやってて行きついた一つの答えをメモしてみた</title><link>http://blogs.wankuma.com/esten/archive/2010/02/06/185829.aspx</link><pubDate>Sat, 06 Feb 2010 11:33:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2010/02/06/185829.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/185829.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2010/02/06/185829.aspx#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/185829.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/185829.aspx</trackback:ping><description>&lt;p&gt;&lt;font color="#808080"&gt;Under17の「こたえ」もAngelaの「未来という名の答え」も好きな曲。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;MVVMってものを色々と、作りながらあーでもないこーでもないと悩んでいたのだけれど、結局は「これでいいんじゃね？」と行きついた一つの答えというか、そんな結論をまとめてみたのでメモしておく。&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/MVVM_A1BD/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_A1BD/image_thumb.png" width="299" height="339"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;図にまとめるとこんな感じ。上から行くと、&lt;/p&gt; &lt;h3&gt;View部分&lt;/h3&gt; &lt;p&gt;Viewクラスが一つ。ここが画面。ユーザーにみえる所。モノはFormだったり、aspxページだったり、Silverlightコンテンツだったりするけど、もちろん、ルックス重視で外面の良いタイプが適任。コントロールが配置されたり、表示されたりでイベントも発生させるし、イベントドリブンの簡単なコードはあるけれど、それ以外のことは全部ViewModelに丸投げｗ。&lt;/p&gt; &lt;h3&gt;ViewModel部分&lt;/h3&gt; &lt;h4&gt;ViewModelクラス&lt;/h4&gt; &lt;p&gt;外面だけ良い八方美人のViewを支える縁の下の力持ち、というか、パートナー、というか、執事。Viewとは１：１の関係で、Viewで発する色々なイベント処理やデータ処理の実体実働はここ。場合によっては複数のModelをコントロールしなくちゃだから、やることはたくさん。といっても、細かな処理についてはModelにさせてしまうので「あれしろ」「これしろ」とメソッド呼び出しするのがお仕事。何も考えていないViewModelのために「何を表示するのか」を定義したViewRecordも管理してくれていたりと、致せり尽くせり。&lt;/p&gt; &lt;h4&gt;ViewRecordクラス&lt;/h4&gt; &lt;p&gt;View部分に配置されるGridViewやDetailView用に作成する自己完結したクラス。各要素をプロパティで公開して、必要であればチェックメソッド何かを持っていたりする。ViewModelに属しているようでいてViewにも媚びている板挟みの立場ｗ&lt;/p&gt; &lt;h3&gt;Model部分&lt;/h3&gt; &lt;p&gt;ここはModelクラス－DataControlクラス－DataSourceクラスのトリオ。３兄弟か姉妹かグループなのかは判んないけどね。ModelとDataControlは、List （of DataRecord）というクラスを共有してうまく仕事を連携できるようにしてる。DataSourceはデータの内容そのものには何も関係してないから、気にしてないけどｗ&lt;/p&gt; &lt;h4&gt;Modelクラス&lt;/h4&gt; &lt;p&gt;ViewModelクラスとのやりとりを一気に引き受ける窓口で交渉人。実質のリーダーというか一番上。正体はDataControlのラッパークラスで、メソッドを公開して命令を受けて、連番処理とかキー付与とかそういう小細工が必要ならしてくれるけど、大体においてはその命令をそのまますぐ下のDataControlに丸投げｗ&lt;/p&gt; &lt;h4&gt;DataControlクラス&lt;/h4&gt; &lt;p&gt;Modelクラスから受けたメソッドを真面目にこつこつと処理する。List (of DataRecord)を持ち、データ処理の中心部分。真ん中はつらいよね。&lt;/p&gt; &lt;h4&gt;DataSourceクラス&lt;/h4&gt; &lt;p&gt;データ接続やロード処理だけを引き受けるクラス。データベースであれば接続切断やSQLの実行、ファイルであれば読み込みや書き込みをする。ModelクラスとDataControlクラスが「どこの」データを処理しているのか全く意識しなくて済んでいるのは実はこのクラスのおかげ。無関心を装って実は要？&lt;/p&gt; &lt;h4&gt;DataRecordクラス&lt;/h4&gt; &lt;p&gt;データベースであればテーブルと、ファイルであればファイルレコードと、それぞれ一致したデータ要素を持つクラス。要素はプロパティで公開。Modelが一緒に外部に公開しているけれども、実体はDataControlと密接な関係に……ってそれなんてトライアングラーｗ　Modelクラスとのやり取りがある、さらにその上のViewModelクラスからも見守られていたりするヒロイン属性ｗ&lt;/p&gt; &lt;hr&gt;  &lt;p&gt;いじょ。&lt;/p&gt; &lt;p&gt;時間とパワーがあれば、サンプルコードも書いてみたいんだけどな。&lt;/p&gt; &lt;p&gt;つか、擬人化してるのは、きっと気のせいｗ&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/185829.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>SliverLight Business Application Project を開けてみた</title><link>http://blogs.wankuma.com/esten/archive/2009/12/04/183551.aspx</link><pubDate>Fri, 04 Dec 2009 19:47:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/12/04/183551.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/183551.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/12/04/183551.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/183551.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/183551.aspx</trackback:ping><description>&lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=76bb3a07-3846-4564-b0c3-27972bcaabce&amp;DisplayLang=en"&gt;Download details: Data-Driven RIA with Silverlight 3&lt;/a&gt;&lt;/p&gt; &lt;p&gt;を入れてみたので、早速、ちょっと、いじってみた。&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_thumb.png" width="547" height="298"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;選択できるプロジェクトが増えてる。とりあえず、&lt;/p&gt; &lt;p&gt;「SliverLight Business Application」を選択して、作ってみた&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_3.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_thumb_3.png" width="376" height="498"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;こ、こんなにたくさんっ！&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;実はモデルはMVC＋Helper＋Liblary(DLL)+Assets ＜ってそのまんまやんｗ&lt;/p&gt; &lt;p&gt;それぞれがどの役割なんだろう。MVVMとはまた随分違うよね。&lt;/p&gt; &lt;p&gt;ドキュメントは、&lt;a href="http://msdn.microsoft.com/en-us/library/ee707344(VS.91).aspx"&gt;WCF RIA Services&lt;/a&gt;　にあって、&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee707360(VS.91).aspx"&gt;Walkthrough: Using the Silverlight Business Application Template&lt;/a&gt;&lt;/p&gt; &lt;p&gt;を読んでみた。ま、とりあえずはビルド実行してみる？　&lt;strong&gt;ってわけで何もせずに、F5&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;すると、&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_thumb_4.png" width="444" height="330"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;たしかに、こういうのが出てきた！でもって、右端の「Login」をクリックすると&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_5.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_thumb_5.png" width="450" height="335"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;&lt;strong&gt;うっひょー、ログイン画面出てきた！すげー、何もコード書いてないのに、もうできてる！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;テンプレートってすごい！&lt;/font&gt;&lt;/p&gt; &lt;p&gt;でもって、左下の「Register Now」をクリックしてみた。&lt;/p&gt; &lt;p&gt;&lt;font color="#008080"&gt;&lt;strong&gt;ダイアログ、回転！！！！！　なにこれ！おもしろいっ！&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_6.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://esten.cside.com/wankuma/img/SliverLightforBusinessApplicationProject_11607/image_thumb_6.png" width="455" height="338"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font color="#008000"&gt;登録画面、出ましたー。何もコード書いてな（ｒｙ&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;ここまでで、もうかなりお腹一杯ｗ　さて、とりあえず、画面の日本語化してみようかなｗ&lt;/p&gt; &lt;p&gt;いろいろといじって楽しめそうです。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/183551.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>俺の屍を越えて行け！＜へんじがない</title><link>http://blogs.wankuma.com/esten/archive/2009/12/04/183544.aspx</link><pubDate>Fri, 04 Dec 2009 18:30:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/12/04/183544.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/183544.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/12/04/183544.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/183544.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/183544.aspx</trackback:ping><description>&lt;p&gt;森さんのところでもご紹介のあった&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.wankuma.com/hirom/archive/2009/12/03/183509.aspx"&gt;WCF RIA Services Beta for Visual Studio 2008 SP1&lt;/a&gt;&lt;/p&gt; &lt;p&gt;せっかくだから、俺はこのツールをインストールするぜ！って人は&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=9442B0F2-7465-417A-88F3-5E7B5409E9DD&amp;amp;displaylang=ja"&gt;Silverlight 3 Tools&lt;/a&gt;&lt;/p&gt; &lt;p&gt;を忘れずに入れておきましょう&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;「SliverLight3 Tools が入ってない！、インストールしないからね！」と&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;インストーラに叱られます&lt;/font&gt;ｗ&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;べ、別に、私がそうなっちゃったからとか、そういうんじゃないんだからねっ！&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/183544.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>くるみの脳みそでテンプレっぽいものをかじってみる～MVVMモデルパターン　その４～</title><link>http://blogs.wankuma.com/esten/archive/2009/09/10/181084.aspx</link><pubDate>Thu, 10 Sep 2009 14:14:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/09/10/181084.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/181084.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/09/10/181084.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/181084.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/181084.aspx</trackback:ping><description>&lt;p&gt;さて、VisualStudio2008 に SliverLight3 Tool kit いれて、VB.NetでMVVMモデルパターンのプログラムを作ってみるですよ&lt;/p&gt; &lt;p&gt;作るアプリケーションのクラスイメージモドキっぽいものはこちら&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.wankuma.com/esten/archive/2009/09/09/181026.aspx"&gt;くるみの脳みそでテンプレっぽいものをかじってみる～MVVMモデルパターン　その３～&lt;/a&gt;&lt;/p&gt; &lt;p&gt;まずは、新規プロジェクトを選択。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="304" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image.png" width="558" border="0"&gt; &lt;/p&gt; &lt;p&gt;SliverLightプロジェクトテンプレートがあるので、これをクリックして、新規作成。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="204" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_3.png" width="348" border="0"&gt; &lt;/p&gt; &lt;p&gt;まぁ、これは、そのまま、「OK」。さて、テンプレできたんで、ここに、モノを入れていってみるですよ。順序は、MODEL　→　VIEWMODEL　→　VIEW　→　MainPage。と絵の右から左、そこから上にいくカンジで。&lt;/p&gt; &lt;h3&gt;MODELクラスの作成&lt;/h3&gt; &lt;p&gt;まずは「HelloWorld」クラスをつくる。&lt;font color="#800000"&gt;くるみの脳みそはファイルがすぐにゴチャゴチャになるのでフォルダに分けてみた。&lt;/font&gt;&lt;/p&gt; &lt;p&gt;プロジェクトに「Model」フォルダを作って、その中に「VBクラス」を一つ作成、名前を「HelloWorld」&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="219" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_4.png" width="727" border="0"&gt; &lt;/p&gt; &lt;p&gt;INotifyPropertyChanged ってものが大事らしく、これをインターフェイスとして実装させておく。インテリセンスって便利で、INotifyPropertyChanged ってフツーに打ちこむとエラーになって、「System.ComponentModel を Import しとけ」と叱られるので素直に言う事を聞いておくと楽かも。&lt;/p&gt; &lt;p&gt;すると、Public Event PropertyChanged っていうのも勝手に出てくるので、これもそのまま。このイベントは、このクラスが持つことになるアイテムが「変更されたよー」ってことを通知するためのものなの&lt;/p&gt; &lt;p&gt;このクラスで、外部とやり取りしたいのは、HelloText。なので、これをプロパティで公開。変更された時には「変更されたよー」通知をしてあげたいので、イベントが発生するようにロジックを仕込んでおく。&lt;/p&gt; &lt;p&gt;ここでいったん、リビルド。&lt;/p&gt; &lt;h3&gt;VIEWMODELクラスの作成&lt;/h3&gt; &lt;p&gt;同じようにプロジェクトに「ViewModel」フォルダを作って、その中に「VBクラス」を一つ作成、名前を「HelloWorldViewModel」&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="248" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_5.png" width="737" border="0"&gt; &lt;/p&gt; &lt;p&gt;イメージとしては、たくさんのHelloを並べてみたいなぁ、ということで、HelloWorldクラスを並べて一つのデータの塊としてていきょうできる ObservableCollection クラスってものを使ってみることにした。はじめListにしてたんだけど、うまくいかなくてorz&lt;/p&gt; &lt;p&gt;で、調べてて、ListクラスにINotify系インターフェイスがくっついてるこのクラスを使うといいらしいと知ったのね。&lt;/p&gt; &lt;p&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/ms668604%28VS.80%29.aspx"&gt;ObservableCollection ジェネリック クラス (System.Collections.ObjectModel)&lt;/a&gt;&lt;/p&gt; &lt;p&gt;まぁ使い方はListクラスと一緒だから、そこのロジックは大丈夫。このクラスでは、「SayHello」というメソッドで、HelloTextsというたくさんの「こんにちは」が入ったList（ObservalbeCollection）を作成。&lt;/p&gt; &lt;p&gt;でもって、ここで、またリビルド。（いちいちやらないと安心できない、それが、くるみの脳ｗ）&lt;/p&gt; &lt;h3&gt;VIEWクラスの作成&lt;/h3&gt; &lt;p&gt;同じようにプロジェクトに「View」フォルダを作って、その中に「SliverLightユーザーコントロール」を一つ作成、&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="226" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_6.png" width="466" border="0"&gt; &lt;/p&gt; &lt;p&gt;名前を「HelloWorldView」。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="241" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_7.png" width="746" border="0"&gt; &lt;/p&gt; &lt;p&gt;今度はxaml。テキストブロックを跳び箱みたいに積み上げるだけのコントロールをちまちまと書き入れ。絵にイメージしたとおり、表示したいTextBlockには DisplayText と名前を付けて、HelloText という要素から表示する内容を取ってきてね、と Binding ロジックを埋め込み。&lt;/p&gt; &lt;p&gt;このHelloText、が　HelloWorldクラスにも同じ名前であることが大事。違うと表示されないの。&lt;/p&gt; &lt;p&gt;でもって、やっぱり、ここでもリビルド。&lt;/p&gt; &lt;h3&gt;MainPage.xamlとMainPage.xaml.vbの変更&lt;/h3&gt; &lt;p&gt;で、最後に接着剤。まずは、xaml側。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="139" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_8.png" width="748" border="0"&gt; &lt;/p&gt; &lt;p&gt;すでにリビルドできているから、インテリセンスも出てくるし、少し楽。&lt;/p&gt; &lt;p&gt;まずは、xmlns:views=”clr-namespace:SliverLightApplication1” を追記。つか、xmlnsを選んでViewsすると出来ちゃうけど。それを入れた後で、Gridの中に&amp;lt;views:HelloWorldView x:name=”HWDataView”&amp;gt; を作成。x:nameってのは、これは「この名前で呼ばれますぅ」ということなので、好きにつけても大丈夫。ってこれも大部分はインテリセンス様が助けてくださるので大変ではなく。&lt;/p&gt; &lt;p&gt;これで、MainPage.xaml にHelloWorld表示準備はOK。まぁまだ皮だけだけど。&lt;/p&gt; &lt;p&gt;皮が出来たら、次は中身。これはVBコードでセット。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="168" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_9.png" width="751" border="0"&gt; &lt;/p&gt; &lt;p&gt;「はろーはろー！こんにちは！」ってわけではないですがｗ&lt;/p&gt; &lt;p&gt;MainPageが表示し終わったら、HelloWorldViewModelクラスを処理して、HelloTextsを生成、それをxamlにおいたコントロールのDataContextにセット。ここが大事な接着剤。&lt;/p&gt; &lt;p&gt;そして、これを、再度リビルド、そして実行！&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="246" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_C801/image_10.png" width="438" border="0"&gt; &lt;/p&gt; &lt;p&gt;ソリューションのテンプレートにあるASPサイトからSliverLightが呼ばれて、ブラウザに「こんにちは」が並びます。&lt;/p&gt; &lt;p&gt;最後に、VB4脳のつなたいソースですが、よろしければ、&lt;a href="http://esten.wankuma.com/dl/SilverlightApplication1.zip"&gt;こちらからどぞ&lt;/a&gt;。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/181084.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>Expression Blend3 評価版が日本語になってた</title><link>http://blogs.wankuma.com/esten/archive/2009/09/10/181073.aspx</link><pubDate>Thu, 10 Sep 2009 11:49:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/09/10/181073.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/181073.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/09/10/181073.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/181073.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/181073.aspx</trackback:ping><description>&lt;p&gt;再度、Hyper-V上で開発環境を作りなおしたのだけれど、ついでにと思って、Blend3をとりに行ったら&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/japan/products/expression/try-it/default.aspx"&gt;評価版 | MicrosoftR ExpressionR&lt;/a&gt;&lt;/p&gt; &lt;p&gt;評価版が来てましたｗ&lt;/p&gt; &lt;p&gt;Blendはこちら&lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e82db5e2-7106-419e-80b0-65cce89f06bb&amp;amp;displaylang=ja"&gt;ダウンロードの詳細 : Expression Blend 3 + SketchFlow 試用版&lt;/a&gt;&lt;/p&gt; &lt;p&gt;インストールから60日間、使えるまする。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/181073.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>くるみの脳みそでテンプレっぽいものをかじってみる～MVVMモデルパターン　その３～</title><link>http://blogs.wankuma.com/esten/archive/2009/09/09/181026.aspx</link><pubDate>Wed, 09 Sep 2009 15:37:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/09/09/181026.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/181026.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/09/09/181026.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/181026.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/181026.aspx</trackback:ping><description>&lt;p&gt;さて、そろそろ、ちょっと、前に進んでみる。&lt;/p&gt; &lt;p&gt;最終目的はSilverLight3でVBでなんか作ってみたい、それもMVVMで、ってところまでまとまってきたのでここで脳内を整理。&lt;/p&gt; &lt;p&gt;必要なものは&lt;/p&gt; &lt;ul&gt; &lt;li&gt;MainPage.xaml&lt;/li&gt; &lt;li&gt;ユーザーコントロールxaml(Viewクラス)&lt;/li&gt; &lt;li&gt;View用のModelViewクラス&lt;/li&gt; &lt;li&gt;本体とかデータとかのクラス&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;なんじゃないかなぁと何となく思ってきた。そこで、お約束、HelloWorldで置き換えて考えてみると&lt;/p&gt; &lt;ul&gt; &lt;li&gt;MainPage.xaml&lt;/li&gt; &lt;li&gt;HelloWorldView.xaml(HelloWorldViewクラス)&lt;/li&gt; &lt;li&gt;HelloWorldViewModelクラス&lt;/li&gt; &lt;li&gt;HelloWorldクラス&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;こんな風になると思うの。これを、HelloWorld、を表示するためのTextBlockでHelloText　って名前で使うこととして&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="384" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_DB8B/image.png" width="526" border="0"&gt; &lt;/p&gt; &lt;p&gt;図にしてみたらこうかなぁ。いろいろとツッコミどころはありそうだけど、脳内のイメージはこんな感じ。&lt;/p&gt; &lt;p&gt;実際に、これで、VisualStudio2008＋SilverLight3ToolKitを使って、いろんなHelloWorldを表示するSilverLightアプリをVBでつくってみようと思う。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/181026.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>AAGにさまようことだってある</title><link>http://blogs.wankuma.com/esten/archive/2009/09/04/180854.aspx</link><pubDate>Fri, 04 Sep 2009 14:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/09/04/180854.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/180854.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/09/04/180854.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/180854.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/180854.aspx</trackback:ping><description>&lt;P&gt;MVVMパターンについて勉強していて、たまに脱線する。&lt;/P&gt;
&lt;P&gt;「Application Architecture Guide 2.0」とか&lt;/P&gt;
&lt;P&gt;&lt;A href="http://apparchguide.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24681"&gt;http://apparchguide.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24681&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;あ、日本語が良い人は解説がここに&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.atmarkit.co.jp/fdotnet/apparcguide/index/index.html"&gt;http://www.atmarkit.co.jp/fdotnet/apparcguide/index/index.html&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000080&gt;今更感なきにしもあらずなんだけど、やっぱり、読んでないなら読んどけ、とちょっと思うｗ&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;そして、次のサンプルに着手&lt;/P&gt;
&lt;P&gt;&lt;A href="http://code.msdn.microsoft.com/mag200903MVVMSL2/Release/ProjectReleases.aspx?ReleaseId=2232"&gt;Code for "Model-View-ViewModel In Silverlight 2 Apps"&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;もちろん、C#もVBもあるでよｗ&lt;/P&gt;
&lt;P&gt;こっちの接着剤はまた違った方法だったので、こっちもしっかり読みとらねばね&lt;/P&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/180854.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>片桐　継（Tugu Katagiri）</dc:creator><title>くるみの脳みそでテンプレっぽいものをかじってみる。～MVVMモデルパターン　その２～</title><link>http://blogs.wankuma.com/esten/archive/2009/09/03/180820.aspx</link><pubDate>Thu, 03 Sep 2009 16:22:00 GMT</pubDate><guid>http://blogs.wankuma.com/esten/archive/2009/09/03/180820.aspx</guid><wfw:comment>http://blogs.wankuma.com/esten/comments/180820.aspx</wfw:comment><comments>http://blogs.wankuma.com/esten/archive/2009/09/03/180820.aspx#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://blogs.wankuma.com/esten/comments/commentRss/180820.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/esten/services/trackbacks/180820.aspx</trackback:ping><description>&lt;p&gt;前回はこちら&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.wankuma.com/esten/archive/2009/09/03/180810.aspx"&gt;http://blogs.wankuma.com/esten/archive/2009/09/03/180810.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;さて、サンプルコードのプロジェクトを読んでいての素朴な疑問。&lt;/p&gt; &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;CustomerView.xaml と CustomerViewModel はどうやってつながるんだろう。&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;ちょこっと普段は覗かない「クラスビュー」なるものを見てみると、「！」なものが&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="304" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_E5E1/image.png" width="620" border="0"&gt; &lt;/p&gt; &lt;p&gt;CustomerView.xamlの中のTextBoxオブジェクトの名前が、CustomerViewクラスの中にいるのを発見。&lt;/p&gt; &lt;p&gt;属性はTextBoxで、&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="52" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_E5E1/image_3.png" width="417" border="0"&gt; &lt;/p&gt; &lt;p&gt;オブジェクトブラウザでも確認できた。xamlのFirstNameTxtという名前のところをもう少し見てみると、このTextBoxにはPorpertyChangedというイベントトリガとFirstNameというPathで準備されていることがわかる。そこでそれをキーワードに、さらに探すと、CustomerViewModel.vbの中に、&lt;/p&gt; &lt;p&gt;&lt;img title="WS000000" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="208" alt="WS000000" src="http://esten.cside.com/wankuma/img/MVVM_E5E1/WS000000.png" width="368" border="0"&gt; &lt;/p&gt; &lt;p&gt;というのを発見。やはり、CustomerView.xamlとCustomerViewModel.vbには関係があるのだろう。&lt;/p&gt; &lt;p&gt;さらにキーワード、CustomerViewModelで検索してみると、MainWindowResources.xamlにこれを発見。&lt;/p&gt; &lt;p&gt;&lt;img title="WS000002" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="100" alt="WS000002" src="http://esten.cside.com/wankuma/img/MVVM_E5E1/WS000002.png" width="374" border="0"&gt; &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;おー、これが、もしかして、接着剤の部分？　「これ、CustomerViewをCustomerViewModelクラスのインスタンスにくっつけちゃうテンプレな！」とコメントにあるとおり。&lt;/p&gt; &lt;p&gt;で、脳内がこうなった。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="282" alt="image" src="http://esten.cside.com/wankuma/img/MVVM_E5E1/image_4.png" width="352" border="0"&gt; &lt;/p&gt; &lt;p&gt;これが、&lt;font color="#008080"&gt;最初の図でどーなってるんだろうと思った矢印の部分の中身だったわけね&lt;/font&gt;。ちょっとすっきりした。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/esten/aggbug/180820.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>