<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/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Expression Blend</title>
        <link>http://blog.galasoft.ch/category/7118.aspx</link>
        <description>Microsoft Expression Blend</description>
        <language>en-US</language>
        <copyright>Laurent Bugnion</copyright>
        <managingEditor>laurent@galasoft.ch</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license>
        <item>
            <title>My program at #MIX10</title>
            <link>http://blog.galasoft.ch/archive/2010/03/10/my-program-at-mix10.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://live.visitmix.com/MIX10/Sessions/EX14"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" alt="MIX10Speaker" align="left" src="http://farm5.static.flickr.com/4031/4422274969_f62ba098fe_o.jpg" width="154" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Getting ready to fly to Vegas and MIX10 is really an exciting time! It is also a very busy time, because we are working on a few projects that will be shown on stage, I have my presentation to prepare, and of course as always the book… though these days it has been a bit on the back burner to be honest ;)&lt;/p&gt;  &lt;p&gt;I arrive in Vegas on Sunday evening around 10PM, so I won’t be able to make it to the traditional IdentityMine dinner this year. I am sure it will be fun nonetheless!&lt;/p&gt;  &lt;h1&gt;My session: Understanding the MVVM pattern&lt;/h1&gt;  &lt;p&gt;&lt;a title="http://live.visitmix.com/MIX10/Sessions/EX14" href="http://live.visitmix.com/MIX10/Sessions/EX14"&gt;http://live.visitmix.com/MIX10/Sessions/EX14&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My session is scheduled on the first day, which is awesome, so I am crossing my fingers and hoping that the MIX team doesn’t change it at the last minute… The session will take place on&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Monday, the 15th of March, 2PM, Room Lagoon F&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Important: &lt;/strong&gt;remember that the USA are moving to Summer time on Sunday, so don’t forget to adjust your watches!!&lt;/p&gt;  &lt;h1&gt;Ask the Experts&lt;/h1&gt;  &lt;p&gt;On Monday evening, I will attend the Ask the Experts event, which is taking place between 5Pm and 6:30PM in the main meal hall. This will be a great occasion to grab a beer and talk about code.&lt;/p&gt;  &lt;h1&gt;The Commons&lt;/h1&gt;  &lt;p&gt;MIX has a great place called the Commons, a great location to chill between sessions, and meet tons of interesting people. I love the Commons and plan to spend a lot of time there to meet as many people as I can.&lt;/p&gt;  &lt;h1&gt;Parties&lt;/h1&gt;  &lt;p&gt;I was invited to a few parties, and will do my best to avoid conflicts :) I plan to be at the following events:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Silverlight Mixers on Monday evening &lt;/li&gt;    &lt;li&gt;Insiders MIX party on Tuesday &lt;/li&gt;    &lt;li&gt;Silverlight partner happy hour on Tuesday too &lt;/li&gt; &lt;/ul&gt; This is a lot of fun, but at the same time we all know that the best value of a conference is to meet people face to face. This is just the right occasion.  &lt;h1&gt;And on Thursday…&lt;/h1&gt;  &lt;p&gt;On Thursday I will be attending a Silverlight event at the Luxor. It will be a very busy day, perfect way to end the conference. I fly back home on Friday morning, but due to a long stop in Washington DC (where I intend to go downtown and take pictures… except if the weather is bad, in which case I will probably go to the museum of flight), I will reach home only on Sunday.&lt;/p&gt;  &lt;h1&gt;Getting hold of me&lt;/h1&gt;  &lt;p&gt;The best way to reach me during MIX is to &lt;a href="http://www.twitter.com/lbugnion"&gt;send me a message on Twitter&lt;/a&gt;. I will regularly tweet my location at the conference, so make sure to come and meet me. I am eager to make new friends, to talk about the fantastic jobs we did in WPF and Silverlight over the past year and hear your war stories!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.twitter.com/lbugnion"&gt;http://www.twitter.com/lbugnion&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=138433"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=138433" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/138433.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/03/10/my-program-at-mix10.aspx</guid>
            <pubDate>Wed, 10 Mar 2010 18:01:28 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/138433.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/03/10/my-program-at-mix10.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/138433.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/138433.aspx</trackback:ping>
        </item>
        <item>
            <title>Schedule for my session at MIX10</title>
            <link>http://blog.galasoft.ch/archive/2010/03/04/schedule-for-my-session-at-mix10.aspx</link>
            <description>&lt;p&gt;Microsoft has published the schedule for the MIX10 sessions. I have a sweet spot, and I dearly hope that it stays this way (Last year I had a great spot, but it was changed last minute and then I had a much better one, “competing” against Vertigo and their Playboy app… yeah try to explain to a bunch of geeks that MVVM is better than Playboy… good luck with that ;) Anyway, this year my sweet spot is on the very first day of the conference (there are workshops on Sunday, but this qualifies as pre-conference), Monday after the keynote which should get everyone pumped and excited.&lt;/p&gt;  &lt;h1&gt;Schedule and location&lt;/h1&gt;  &lt;p&gt;I would be really happy to meet y’all at&lt;/p&gt;  &lt;div class="frame"&gt;   &lt;p&gt;&lt;a href="http://live.visitmix.com/MIX10/Sessions/EX14"&gt;Understanding the Model-View-ViewModel Pattern&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;in Lagoon F on Monday at 2:00 PM&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://live.visitmix.com/MIX10/Sessions/EX14"&gt;http://live.visitmix.com/MIX10/Sessions/EX14&lt;/a&gt;&lt;/p&gt; &lt;/div&gt;  &lt;h1&gt;&lt;/h1&gt;  &lt;h1&gt;See you in Vegas (or in video…)&lt;/h1&gt;  &lt;p&gt;Everything I saw so far hints that this should be a very, very exciting edition of MIX, maybe the most electrifying ever. The great news is that everything will be available even if you cannot make it: The keynotes are typically streamed live, and if you remember last year’s experience at PDC, it is a really good alternative. Built with Silverlight, the feed uses smooth streaming (adjusting the quality according to your bandwidth automatically), possibility to pause and rewind if you miss something, and a great picture quality. As for the sessions, the message at MIX is that the videos will be available online approximately 24 hours after the session is being held. This is a great feat!&lt;/p&gt;  &lt;p&gt;So, see you in Vegas (or in video)!&lt;/p&gt;  &lt;p&gt;Cheers,&lt;/p&gt;  &lt;p&gt;Laurent&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=138350"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=138350" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/138350.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/03/04/schedule-for-my-session-at-mix10.aspx</guid>
            <pubDate>Fri, 05 Mar 2010 07:48:58 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/138350.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/03/04/schedule-for-my-session-at-mix10.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/138350.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/138350.aspx</trackback:ping>
        </item>
        <item>
            <title>Quick tip: Commenting out properties in XAML</title>
            <link>http://blog.galasoft.ch/archive/2010/02/01/quick-tip-commenting-out-properties-in-xaml.aspx</link>
            <description>&lt;p&gt;Often when you write XAML, you wish you could ignore a property temporarily. In code, it is easy to do: Just comment out the line where the property is set, and you are good to compile.&lt;/p&gt;  &lt;pre class="csharp" name="code"&gt;LayoutRoot.Background = new SolidColorBrush(Colors.Red);
//LayoutRoot.DummyProperty = "Ignored";
/* LayoutRoot.Another = "Ignored too"; */&lt;/pre&gt;

&lt;p&gt;In XAML it is not so easy, because XML (of which XAML is a dialect) does not have line comments, but only block comments. You can comment out a whole XAML element, but not just one property.&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;!--&amp;lt;ThisBlockIsIgnored Hello="World"
                    Again="Blah"&amp;gt;
    &amp;lt;Label Content="No parse" /&amp;gt;
&amp;lt;/ThisBlockIsIgnored&amp;gt;--&amp;gt;&lt;/pre&gt;

&lt;pre class="brush: xml;"&gt;&amp;lt;TextBlock Text="This is parsed"
   Tag="This too"
   &amp;lt;!--DummyAttribute="No parse"--&amp;gt;
   Margin="10"/&amp;gt;&lt;/pre&gt;
This last blocks creates an error. 

&lt;p&gt;Commenting single properties in XAML requires just a little more initial work, but then it is very easy:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;In the root tag, add a new xmlns statement to import the Open XML markup compatibility elements: &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Then, add another xmlns statement mapping a prefix of your choice (I like to use “ignore”) to an URI of your choice (for example “http://www.galasoft.ch/ignore”). Note that this URI does not need to point to anything on the web. This is just a unique resource identifier, something like a unique ID. &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;xmlns:ignore="http://www.galasoft.ch/ignore"&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Finally, use the mc:Ignorable property to set the new prefix as ignorable. &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;mc:Ignorable="ignore"&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Note: If you already had one ignorable prefix defined (for example the “d” prefix that Expression Blend and the Visual Studio designer use), no problems. Just add the new prefix to the Ignorable list with a space to separate the prefixes. &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;mc:Ignorable="d ignore"&lt;/pre&gt;

&lt;p&gt;The XAML parser honors the Ignorable property and will simply ignore any value prefixed by one of the prefixes defined in the list. Do not however use the Blend “d” ignorable prefix, because this has a special meaning for Blend and Visual Studio designer. The way described here defines a brand new prefix without any additional meaning. The “ignore” prefix can be used for properties or for whole blocks (including their content):&lt;/p&gt;

&lt;p&gt;Single property:&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;TextBlock Text="This is parsed"
   Tag="This too"
   ignore:DummyAttribute="No parse"
   Margin="10"/&amp;gt;&lt;/pre&gt;

&lt;p&gt;Whole block:&lt;/p&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;ignore:ThisBlockIsIgnored Hello="World"
                    Again="Blah"&amp;gt;
    &amp;lt;Label Content="No parse" /&amp;gt;
&amp;lt;/ignore:ThisBlockIsIgnored&amp;gt;  &lt;/pre&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div style="margin-bottom: -1em"&gt;
  &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;

  &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137742"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137742" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/137742.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/02/01/quick-tip-commenting-out-properties-in-xaml.aspx</guid>
            <pubDate>Mon, 01 Feb 2010 17:26:05 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/137742.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/02/01/quick-tip-commenting-out-properties-in-xaml.aspx#feedback</comments>
            <slash:comments>5</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/137742.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/137742.aspx</trackback:ping>
        </item>
        <item>
            <title>The MVVM landscape at MIX10</title>
            <link>http://blog.galasoft.ch/archive/2010/01/21/the-mvvm-landscape-at-mix10.aspx</link>
            <description>&lt;div class="frame"&gt;&lt;strong&gt;Update: Shawn Wildermuth has changed his session and will be talking about Silverlight Security instead.&lt;/strong&gt;&lt;/div&gt;  &lt;p&gt;The MIX conference this year had an open call for sessions, and 12 sessions were voted by the public out of 169. Surprisingly (or maybe not that surprisingly in fact), 3 sessions out of the 12 have the MVVM pattern in their title. This shows a lot of interest for this pattern which is helping the developer to create decoupled, testable, blendable applications in Silverlight and in WPF.&lt;/p&gt;  &lt;p&gt;Since my session is one of the three, I decided to contact the other two speakers (we happen to run in the same circles ;)) and try to coordinate the content. I think that by talking to each other, we can organize our content so that we avoid overlap and offer a wider landscape to the audience.&lt;/p&gt;  &lt;p&gt;The two other authors responded positively to my request, and this is roughly how it will look like. Of course some overlap is unavoidable, to set the context right and avoid misunderstandings. After all, MVVM is a pattern, and as such there are multiple possible implementations or even interpretations of the pattern. But I think that this way, you will get a wider, deeper overview of what MVVM has to offer for you today.&lt;/p&gt;  &lt;h2&gt;Rob Eisenberg’s “Build Your Own MVVM Framework”&lt;/h2&gt;  &lt;p&gt;Rob is coordinator on the Caliburn project (a very powerful MVVM framework), but this is not a Caliburn talk. Instead, Rob will take some of the features of this framework and demonstrate how to build them from scratch. This should be a must see for the people who want to understand what is involved in a MVVM application, and how to avoid taking a dependency on an external framework. Rob will also talk about additional topics not directly related to MVVM.&lt;/p&gt;  &lt;h2&gt;Laurent Bugnion’s “Understanding the Model-View-ViewModel Pattern”&lt;/h2&gt;  &lt;p&gt;In this talk, I will set primary focus on the Blendability, i.e. how to structure your application so that it works great in Expression Blend. For instance, how can you display “design time data” in Expression Blend, so that the designers have something to design against. I will also show some components included in my MVVM Light Toolkit and explain how they can help you solve some issues in your applications. My talk will apply to Windows Presentation Foundation as well as Silverlight.&lt;/p&gt;  &lt;h2&gt;To be noted&lt;/h2&gt;  &lt;p&gt;It is nice to note that Rob and I are not employed by Microsoft, but “just” enthusiast users of the technologies we will talk about. There is a great community around Silverlight and WPF, and it is interesting to note that most of the MVVM frameworks (at the exception of PRISM which is not directly an MVVM framework) originate from outside of Microsoft. Let’s spread the word: MVVM is the pattern of choice when you work in WPF or Silverlight. Come visit our sessions, your life as a developer will be changed!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137570"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137570" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/137570.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/01/21/the-mvvm-landscape-at-mix10.aspx</guid>
            <pubDate>Thu, 21 Jan 2010 15:06:26 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/137570.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/01/21/the-mvvm-landscape-at-mix10.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/137570.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/137570.aspx</trackback:ping>
        </item>
        <item>
            <title>Talking in Las Vegas: MIX2010 and MVVM</title>
            <link>http://blog.galasoft.ch/archive/2010/01/19/talking-in-las-vegas-mix2010-and-mvvm.aspx</link>
            <description>&lt;div class="frame"&gt;&lt;strong&gt;Update:&lt;/strong&gt; The session is officially on. &lt;a href="http://live.visitmix.com/MIX10/Sessions/EX14"&gt;See the MIX10 website&lt;/a&gt;.&lt;/div&gt;  &lt;p&gt;&lt;a href="http://live.visitmix.com/Sessions"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="MIX10: Speaker" border="0" alt="MIX10: Speaker" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/TalkinginLasVegasMIX2010andMVVM_B09F/o_MIX10Speaker%5B1%5D_3.jpg" width="154" height="151" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This morning, very early (or very late depending how you see it), I learned that one of the sessions &lt;a href="http://blog.galasoft.ch/archive/2010/01/05/mix-2010-voting-for-sessions-has-begun-i-got-two.aspx"&gt;I submitted to the MIX 2010&lt;/a&gt; open call for speakers had been picked by the public. Out of 169 sessions, only 12 were picked, so you imagine my feelings right now. Honestly, I am sure that this will be a good session, but it could have gone either way, and I had prepared myself mentally for the alternative possibility too.&lt;/p&gt;  &lt;h2&gt;Understanding the Model-View-ViewModel pattern&lt;/h2&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;The Model-View-ViewModel pattern (also called MVVM) is a hot topic in today’s Silverlight and WPF world. This pattern facilitates modern development techniques such as separation of concerns (decoupling), unit testing and test driven development, work with modern tools such as Visual Studio 2010, Expression Blend and more.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;In this session, Laurent (a user and promoter of MVVM since 2006) will introduce this pattern to you with many demos. We will talk about the basic components of a modern Silverlight or WPF application, and of additional helpers that will make your life as a developer much easier.&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;MVVM at MIX&lt;/h2&gt;  &lt;p&gt;Interestingly, 3 of the 12 open call sessions picked by the audience have “MVVM” in the title. Rob Eisenberg’s “Build Your Own MVVM Framework” and Shawn Wildermuth’s “RIA Services and MVVM: It Can Happen!”, in addition to mine, should cover the topic in depth. After thinking about it, I decided I will contact Rob and Shawn to talk to them about their session, and try to avoid overlap.&lt;/p&gt;  &lt;p&gt;On my end, I will probably shift the focus a little more on what MVVM brings you from a designer (well, integrator)’s point of view, and how you can leverage this pattern to create beautiful applications. I will also, of course, talk about the &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;MVVM Light Toolkit&lt;/a&gt;, the open source toolkit I have been developing since last year, and which encounters a great success.&lt;/p&gt;  &lt;h2&gt;Send me your suggestions&lt;/h2&gt;  &lt;p&gt;I would love to hear if you have topics you would like to hear about during the session. I have a pretty good idea of what I will talk about, but let me know what is really important for you. What aspects of MVVM do you want me to focus on? What components of MVVM Light? Let me know, and I will adapt the content to include these topics!&lt;/p&gt;  &lt;p&gt;I am very much looking forward to this session, and will see you in March at MIX!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137541"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137541" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/137541.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/01/19/talking-in-las-vegas-mix2010-and-mvvm.aspx</guid>
            <pubDate>Tue, 19 Jan 2010 12:28:40 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/137541.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/01/19/talking-in-las-vegas-mix2010-and-mvvm.aspx#feedback</comments>
            <slash:comments>12</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/137541.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/137541.aspx</trackback:ping>
        </item>
        <item>
            <title>MIX 2010: Voting for sessions has begun (I got two)</title>
            <link>http://blog.galasoft.ch/archive/2010/01/05/mix-2010-voting-for-sessions-has-begun-i-got-two.aspx</link>
            <description>&lt;a title="Vote for my sessions" href="http://visitmix.com/opencallvote/?query=laurent+bugnion" alt="Vote for my sessions"&gt;&lt;img style="margin: 0px 10px 0px 0px; display: inline" align="left" src="http://farm3.static.flickr.com/2719/4249943999_de21185ac5.jpg" width="240" height="320" /&gt;&lt;/a&gt;   &lt;p&gt;This year Microsoft decided to have &lt;a href="http://live.visitmix.com/opencall"&gt;an open call for sessions&lt;/a&gt; for the MIX 2010 in Las Vegas. This conference, in case you don’t know it yet, is a great 3 days about modern client technologies, such as ASP.NET, Windows Presentation Foundation and of course Silverlight. This year, MIX is taking place from the 15th to the 17th of March 2010 in the Mandalay Bay hotel in Vegas.&lt;/p&gt;  &lt;p&gt;Today, the voting began! I didn’t count them, but there seems to be more than 100 sessions lined up, and the competition is fierce: Only 10 sessions will make the cut and be chosen for MIX. I just reviewed the speakers, and it is a pretty amazing line-up.&lt;/p&gt;  &lt;p&gt;On my end, I submitted two sessions (see below). I honestly think that these two sessions will help the attendees become better developers in Silverlight and in WPF. The talks are based on years of experience with these two technologies, on real life projects.&lt;/p&gt;  &lt;h2&gt;A day in the life of a Silverlight/WPF Integrator&lt;/h2&gt;  &lt;p&gt;Vote here: &lt;a title="http://visitmix.com/opencallvote/Entry?entryId=ADAYIN060" href="http://visitmix.com/opencallvote/Entry?entryId=ADAYIN060"&gt;http://visitmix.com/opencallvote/Entry?entryId=ADAYIN060&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abstract:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;This session proposes an insight in the life of an integrator (sometimes called User Experience Developer or “Devigner”). How do we translate a creative designer’s vision into code, transforming it into interactive applications? What tools do we use, what tricks did we learn? This session will show you how to start from scratch and coordinate designers and developers to create a new rich application in Silverlight or Windows Presentation Foundation. We will see how to architect and structure the application according to the best practices in the field, and what workflows are involved. We will also see how to create and integrate XAML assets into the user interface. You will leave with a much better understanding on how the new integrator role is changing the way that client applications are developed.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;You want to create beautiful applications? That’s what I do for a living, come and share the experience!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Having worked as an integrator for quite a few years now, in large distributed teams of developers and designers, I have identified many areas where the process is different from a classic application. The integrator role is a fairly recent role and many firms need guidance to understand how to start developing their Silverlight or WPF applications, and how to move from wireframes to design to development to testing.&lt;/p&gt;  &lt;p&gt;We will also review the tools and the tips&amp;amp;tricks that make the life of an integrator easier. This is not just about Expression Blend, but about all the small helpers that facilitate the integration process. &lt;/p&gt;  &lt;h2&gt;Understanding the Model-View-ViewModel pattern&lt;/h2&gt;  &lt;p&gt;Vote here: &lt;a title="http://visitmix.com/opencallvote/Entry?entryId=UNDERS103" href="http://visitmix.com/opencallvote/Entry?entryId=UNDERS103"&gt;http://visitmix.com/opencallvote/Entry?entryId=UNDERS103&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Abstract: &lt;/p&gt;  &lt;p&gt;&lt;em&gt;The Model-View-ViewModel pattern (also called MVVM) is a hot topic in today’s Silverlight and WPF world. This pattern facilitates modern development techniques such as separation of concerns (decoupling), unit testing and test driven development, work with modern tools such as Visual Studio 2010, Expression Blend and more.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;In this session, Laurent (a user and promoter of MVVM since 2006) will introduce this pattern to you with many demos. We will talk about the basic components of a modern Silverlight or WPF application, and of additional helpers that will make your life as a developer much easier.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;From the maker of the MVVM Light Toolkit!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This talk is targeted at developers who keep hearing people talk about the Model-View-ViewModel pattern, but don’t quite know what it is, what it does, and how to get the best out of that. Again, few slides and a lot of code, as we will walk through the creation of a MVVM application and study the components that help separating the concerns in the application. We will also talk about external frameworks that help you creating new MVVM applications.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137356"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137356" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/137356.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2010/01/05/mix-2010-voting-for-sessions-has-begun-i-got-two.aspx</guid>
            <pubDate>Wed, 06 Jan 2010 00:12:15 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/137356.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2010/01/05/mix-2010-voting-for-sessions-has-begun-i-got-two.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/137356.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/137356.aspx</trackback:ping>
        </item>
        <item>
            <title>Silverlight 4: Drag&amp;amp;drop with EventToCommand</title>
            <link>http://blog.galasoft.ch/archive/2009/12/17/silverlight-4-dragampdrop-with-eventtocommand.aspx</link>
            <description>&lt;p&gt;One of the &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;MVVM Light Toolkit’s&lt;/a&gt; user &lt;a href="http://mvvmlight.codeplex.com/Thread/View.aspx?ThreadId=74835"&gt;requested that I add the possibility&lt;/a&gt; to pass the EventArgs of an event to the ICommand that it is bound to through &lt;a href="http://blog.galasoft.ch/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx"&gt;the EventToCommand trigger&lt;/a&gt;. At first I was a bit reluctant because it seems like a transgression of the rule that says you should avoid to have too much knowledge about the UI layer in the ViewModel. For example, if you have a &lt;a href="http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx"&gt;RelayCommand in the ViewModel&lt;/a&gt; that expects a MouseEventArgs, it kinds of binds you to a certain kind of UI element, which is not super clean.&lt;/p&gt;  &lt;p&gt;That said, I also understand that in some cases it might be useful to get the EventArgs down in the ViewModel, which is why I decided to add this possibility (&lt;a href="http://blog.galasoft.ch/archive/2009/11/30/mvvm-light-toolkit-v3-alpha-3-for-wpf4sl4.aspx"&gt;available from V3/alpha 3&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;And in fact, as I was testing it, I just got another request from my good friend &lt;a href="http://weblogs.asp.net/lkempe/"&gt;Laurent Kempé&lt;/a&gt; (one of the early and enthusiastic users of MVVM Light) to help use EventToCommand in the case of a drag&amp;amp;drop operation in Silverlight 4. That was the perfect test case for this new feature.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Note: Laurent &lt;a href="http://www.techheadbrothers.com/Astuces.aspx/silverlight-4-beta-drop-target-mvvm"&gt;wrote a post in French&lt;/a&gt; describing a drag&amp;amp;drop implementation.&lt;/em&gt;&lt;/p&gt;  &lt;h2&gt;Resources&lt;/h2&gt;  &lt;p&gt;The &lt;a href="http://galasoft.ch/mvvm/resources/Samples/MvvmLightDragAndDrop.zip"&gt;source code for this sample&lt;/a&gt; is available here. The MVVM Light Toolkit’s DLLs are also included (V3/alpha3). This code is for Visual Studio 2010 beta 2 and/or Expression Blend Preview for Silverlight 4.&lt;/p&gt;  &lt;p&gt;You can optionally install the MVVM Light Toolkit V3/alpha3 from the &lt;a href="http://www.galasoft.ch/mvvm/installing/manually"&gt;Installing Manually page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;More info about the MVVM Light Toolkit is available on the &lt;a href="http://www.galasoft.ch/mvvm/getstarted"&gt;Get Started page&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Creating a drag&amp;amp;drop enabled Silverlight application&lt;/h2&gt;  &lt;p&gt;Let’s start by creating a new MVVM Light application in Silverlight 4. In the moment the process of installing the project templates is manual, but it should be easy enough &lt;a href="http://www.galasoft.ch/mvvm/installing/manually"&gt;if you follow these instructions&lt;/a&gt;.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;You can create a new MVVM Light application for Silverlight 4 in Visual Studio 2010 or in Expression Blend Preview 4. Simply choose File, New Project and then select the template called MVVM Light (SL4). &lt;/li&gt; &lt;/ul&gt; &lt;a title="Creating a new MVVM Light application" href="http://www.flickr.com/photos/36917929@N06/4188680130"&gt;&lt;img src="http://farm3.static.flickr.com/2625/4188680130_36d3e8741b.jpg" width="500" height="339" /&gt;&lt;/a&gt;   &lt;p&gt;We need to define a drop target for the files in the application. This can be done for just any UI element, so you can choose the main Grid (if you want the whole application to be a drop target) or any other element. In our case, to keep things simple, let’s define the main Grid as the drop target.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Set the property &lt;strong&gt;AllowDrop&lt;/strong&gt; to True, either in XAML or in Blend. Also change the other properties as shown in XAML below.       &lt;br /&gt;&lt;em&gt;Note: We will implement the DroppedFileContent property in a moment.&lt;/em&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;pre class="xml" name="code"&gt;&amp;lt;Grid x:Name="LayoutRoot"
      AllowDrop="True"
      Background="#FF9F9F9F"&amp;gt;
    &amp;lt;TextBlock FontSize="36"
               FontWeight="Bold"
               Foreground="Purple"
               Text="{Binding DroppedFileContent}"
               VerticalAlignment="Center"
               HorizontalAlignment="Center"
               TextWrapping="Wrap"
               TextTrimming="WordEllipsis" /&amp;gt;
&amp;lt;/Grid&amp;gt;&lt;/pre&gt;

&lt;p&gt;&lt;a title="Setting AllowDrop in Blend" href="http://www.flickr.com/photos/36917929@N06/4188001409"&gt;&lt;img src="http://farm3.static.flickr.com/2675/4188001409_92612bd85c.jpg" width="332" height="170" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Open the MainViewModel and add a bindable property. 
    &lt;br /&gt;&lt;em&gt;Note: If you have the MVVM Light Toolkit installed, you can use a code snippet for this: Type &lt;strong&gt;mvvminpc&lt;/strong&gt; then &lt;strong&gt;tab&lt;/strong&gt; to expand the snippet, and enter the property’s name, &lt;strong&gt;tab&lt;/strong&gt;, its type, &lt;strong&gt;tab&lt;/strong&gt; and the name of the attribute. Then, edit the code until it looks like the one below:&lt;/em&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;/// &amp;lt;summary&amp;gt;
/// The &amp;lt;see cref="DroppedFileContent" /&amp;gt; property's name.
/// &amp;lt;/summary&amp;gt;
public const string DroppedFileContentPropertyName = "DroppedFileContent";

private string _droppedFile = "Drop file here";

/// &amp;lt;summary&amp;gt;
/// Gets the DroppedFileContent property.
/// Changes to that property's value raise the PropertyChanged event. 
/// &amp;lt;/summary&amp;gt;
public string DroppedFileContent
{
    get
    {
        return _droppedFile;
    }

    set
    {
        if (_droppedFile == value)
        {
            return;
        }

        _droppedFile = value;
        RaisePropertyChanged(DroppedFileContentPropertyName);
    }
}&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Add a &lt;strong&gt;RelayCommand&amp;lt;DragEventArgs&amp;gt;&lt;/strong&gt; property to the MainViewModel. Name this property HandleDropCommand. You will need to add GalaSoft.MvvmLight.Command, System and System.Windows to the “using” section. &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;public RelayCommand&amp;lt;DragEventArgs&amp;gt; HandleDropCommand
{
    get;
    private set;
}&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Finally, in the constructor, initialize the HandleDropCommand. We will start by simply showing a MessageBox when a file is dropped. &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="csharp" name="code"&gt;public MainViewModel()
{
    HandleDropCommand = new RelayCommand&amp;lt;DragEventArgs&amp;gt;(e =&amp;gt;
    {
        System.Windows.MessageBox.Show("Drop");
    });
}&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;Add an EventToCommand trigger to the main Grid. This element is part of the GalaSoft.MvvmLight.Extras DLL which is referenced by default in the MVVM Light project template, so if you start like we described here, you don’t need to do anything to use EventToCommand. If you start from a non MVVM Light application, you need to add a reference to &lt;a href="http://galasoft.ch/mvvm/installing/manually/#binaries"&gt;GalaSoft.MvvmLight.dll, GalaSoft.MvvmLight.Extras.dll and System.Windows.Interactivity.dll&lt;/a&gt;

    &lt;br /&gt;Make sure you get the V3/alpha3 version. 

    &lt;br /&gt;&lt;strong&gt;Make sure you reference the binaries from&lt;/strong&gt; C:\Program Files\Laurent Bugnion (GalaSoft)\Mvvm Light Toolkit\&lt;strong&gt;VS10&lt;/strong&gt;\Binaries\Silverlight). 

    &lt;ul&gt;
      &lt;li&gt;Build the application to make sure that you have the latest stand loaded in Blend. &lt;/li&gt;

      &lt;li&gt;In Blend, open the Assets tab, select the EventToCommand from the Behaviors category and drag/drop it on the LayoutRoot grid. &lt;/li&gt;

      &lt;li&gt;Then set the EventName property to “Drop”. &lt;/li&gt;

      &lt;li&gt;Bind the Command property to the HandleDropCommand in the MainViewModel which is the Explicit Data Context of the main Grid. 
        &lt;br /&gt;&lt;em&gt;Note: To open the databinding editor, press the advanced properties widget (the small black square) next to the Command property, and select Data Binding from the context menu.&lt;/em&gt; &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;a title="Binding to the command" href="http://www.flickr.com/photos/36917929@N06/4188061773"&gt;&lt;img src="http://farm5.static.flickr.com/4005/4188061773_187785761f.jpg" width="500" height="469" /&gt;&lt;/a&gt; 

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;ul&gt;
    &lt;li&gt;Finally, check the &lt;strong&gt;PassEventArgsToCommand&lt;/strong&gt; checkbox. 

      &lt;br /&gt;&lt;em&gt;Note: The combination of having an argument of type EventArgs in the RelayCommand, and the PassEventArgsToCommand property set to true will cause the event’s EventArgs to be passed directly to the RelayCommand’s parameter.&lt;/em&gt; &lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a title="Setting the EventToCommand properties" href="http://www.flickr.com/photos/36917929@N06/4188068747"&gt;&lt;img src="http://farm3.static.flickr.com/2624/4188068747_d8391bac46.jpg" width="389" height="443" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;If you do not have Blend, you can also add the EventToCommand in Visual Studio in XAML: 
    &lt;ul&gt;
      &lt;li&gt;In the MainPage.xaml file, add two namespaces to the UserCommand tag: &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;ul&gt;
    &lt;li&gt;Then, add the EventToCommand trigger within the LayoutRoot grid with the following XAML code: &lt;/li&gt;
  &lt;/ul&gt;
&lt;/ul&gt;

&lt;pre class="xml" name="code"&gt;&amp;lt;i:Interaction.Triggers&amp;gt;
    &amp;lt;i:EventTrigger EventName="Drop"&amp;gt;
        &amp;lt;cmd:EventToCommand Command="{Binding HandleDropCommand, Mode=OneWay}"
                            PassEventArgsToCommand="True" /&amp;gt;
    &amp;lt;/i:EventTrigger&amp;gt;
&amp;lt;/i:Interaction.Triggers&amp;gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Test the application: In Blend, press F5, or in Visual Studio press Ctrl-F5. Then, drag a file, and drop it on the main Grid. Notice how the mouse cursor indicates that the Grid is a valid drop target. &lt;/li&gt;
&lt;/ul&gt;
&lt;a title="Drop cursor" href="http://www.flickr.com/photos/36917929@N06/4188861348"&gt;&lt;img src="http://farm3.static.flickr.com/2675/4188861348_9541965f20.jpg" width="330" height="263" /&gt;&lt;/a&gt; 

&lt;p&gt; &lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Drop the file. You should see the MessageBox proving that the RelayCommand has been called successfully. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Getting and handling the files&lt;/h2&gt;

&lt;p&gt;Now that we have the RelayCommand ready, let’s access the DragEventArgs and get the file content from there. In this sample example, we will accept TXT files, and display the first few words from the file content.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Replace the call to MessageBox within the HandleDropCommand implementation with the following code: &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;/p&gt;

&lt;pre class="csharp" name="code"&gt;if (e.Data == null)
{
    return;
}

var files = e.Data.GetData(DataFormats.FileDrop)
    as FileInfo[];

// This works with multiple files, but in that
// simple case, let's just handle the 1st one
if (files == null
    || files.Length == 0)
{
    DroppedFileContent = "No files";
    return;
}

var file = files[0];

if (!file.Extension.ToLower().Equals(".txt"))
{
    DroppedFileContent = "Not a TXT file";
    return;
}

using (var stream = file.OpenRead())
{
    using (var reader = new StreamReader(stream))
    {
        // Read the first line
        var line = reader.ReadLine();
        DroppedFileContent = line;
    }
}                &lt;/pre&gt;

&lt;p&gt;Few notes about this code:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;You can get a reference to the files dropped on the target with the DragEventArgs.Data.GetData method. &lt;/li&gt;

  &lt;li&gt;Note however that since we are in Silverlight within the security sandbox, you will get a security exception if you try to access the file’s FullName. You may get the content of the file (because it is dropped by the user) but not additional information about where these files are located. &lt;/li&gt;

  &lt;li&gt;In this example, we get only the first file, but it is easy to see how we could access all the files dropped. &lt;/li&gt;

  &lt;li&gt;We do handle only TXT files in this example. &lt;/li&gt;

  &lt;li&gt;Reading the file’s content is done in an usual way, with a Stream and a StreamReader. Note the presence of the “using” statements, to make it easier (no need to explicitly close and dispose the stream and the reader). For binary files, we would use a BinaryReader, etc… &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;An issue with Visual Studio 2010&lt;/h2&gt;

&lt;p&gt;In the course of preparing this article, I noticed an issue in Visual Studio 2010 when I attempt to debug the HandleDropCommand implementation. Even with a breakpoint placed within the code, the debugger does not break. I am not sure right now what is the reason, and the code does get executed, but this complicates debugging of course. I am investigating and talking to Microsoft about that, but right now I am not sure where it comes from.&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;In the MVVM pattern, we generally try to avoid putting too much code in the code behind because it complicates the developer-designer workflow. Though I am not a puritan about that :) I think that EventToCommand and the new PassEventArgsToCommand property are reasonable steps to make UI interaction such as drag&amp;amp;drop even easier to code.&lt;/p&gt;

&lt;p&gt;Hope you like it :)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="margin-bottom: -1em"&gt;
  &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;

  &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt; 

    &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137030"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=137030" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/137030.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2009/12/17/silverlight-4-dragampdrop-with-eventtocommand.aspx</guid>
            <pubDate>Thu, 17 Dec 2009 16:49:31 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/137030.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/12/17/silverlight-4-dragampdrop-with-eventtocommand.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/137030.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/137030.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light V3/alpha3 for Blend 3 and Blend Preview 4</title>
            <link>http://blog.galasoft.ch/archive/2009/12/04/mvvm-light-v3alpha3-for-blend-3-and-blend-preview-4.aspx</link>
            <description>&lt;p&gt;The project and item templates allowing you to create pre-wired MVVM Light applications are now also available for Expression Blend 3 and Expression Blend Preview for .NET 4 and Silverlight 4. The installation process is manual, but not difficult at all (unzipping a few files to predefined paths). I did &lt;a href="http://www.galasoft.ch/mvvm/installing/manually"&gt;document the installation process here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Of course the templates are also available for Visual Studio 2008 and Visual Studio 2010, as well as the binaries. The &lt;a href="http://mvvmlight.codeplex.com/"&gt;source code is available on Codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I still have one feature I want to add in V3, and then I will create a release version. Seeing how my schedule is, it will probably be during the holidays. However, V3/alpha 3 is very stable and I didn’t get any error report from users who upgraded. I also don’t think there will be any breaking change. At this point, I would recommend users who want the new features to upgrade to V3.&lt;/p&gt;  &lt;p&gt;I will post a list of new features in this version later.&lt;/p&gt;  &lt;p&gt;Happy coding!&lt;/p&gt; &lt;a title="MVVM Light V3 in Blend Preview for .NET 4 and Silverlight 4" href="http://www.flickr.com/photos/36917929@N06/4159924166"&gt;&lt;img src="http://farm3.static.flickr.com/2563/4159924166_e025e463aa.jpg" width="500" height="403" /&gt;&lt;/a&gt;   &lt;br /&gt;MVVM Light V3 in Blend Preview for .NET 4 and Silverlight 4   &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136714"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136714" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/136714.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2009/12/04/mvvm-light-v3alpha3-for-blend-3-and-blend-preview-4.aspx</guid>
            <pubDate>Sat, 05 Dec 2009 09:06:12 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/136714.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/12/04/mvvm-light-v3alpha3-for-blend-3-and-blend-preview-4.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/136714.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/136714.aspx</trackback:ping>
        </item>
        <item>
            <title>MVVM Light Toolkit V3 Alpha 3 for WPF4/SL4</title>
            <link>http://blog.galasoft.ch/archive/2009/11/30/mvvm-light-toolkit-v3-alpha-3-for-wpf4sl4.aspx</link>
            <description>&lt;div class="frame"&gt;&lt;strong&gt;Update:&lt;/strong&gt; The &lt;a href="http://blog.galasoft.ch/archive/2009/12/04/mvvm-light-v3alpha3-for-blend-3-and-blend-preview-4.aspx"&gt;templates are also available&lt;/a&gt; for Expression Blend 3 and Expression Blend Preview for .NET 4 and Silverlight 4.&lt;/div&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/MVVMLightToolkitV3Alpha3forWPF4SL4_14FA3/4084199726_d1cc8527aa_o%5B1%5D_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="4084199726_d1cc8527aa_o[1]" border="0" alt="4084199726_d1cc8527aa_o[1]" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/lbugnion/WindowsLiveWriter/MVVMLightToolkitV3Alpha3forWPF4SL4_14FA3/4084199726_d1cc8527aa_o%5B1%5D_thumb.png" width="244" height="210" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I just published the latest alpha version of the &lt;a href="http://galasoft.ch/mvvm/getstarted/"&gt;MVVM Light Toolkit&lt;/a&gt;. I will post more about the new features in this alpha version, but the most exciting is probably that with this release, the MVVM Light Toolkit works in &lt;strong&gt;Windows Presentation Foundation 4 and in Silverlight 4&lt;/strong&gt; (in Visual Studio 2010).&lt;/p&gt;  &lt;p&gt;There is no automatic installer for this version yet, but I wrote &lt;a href="http://galasoft.ch/mvvm/installing/manually/"&gt;a page describing how to install manually&lt;/a&gt; (it is as easy as unzipping a few files). All the features are also available for Visual Studio 2008 as usual.&lt;/p&gt;  &lt;p&gt;The &lt;a href="http://mvvmlight.codeplex.com/SourceControl/ListDownloadableCommits.aspx"&gt;source code was also updated&lt;/a&gt; on the Codeplex website.&lt;/p&gt;  &lt;p&gt;More documentation will follow soon so stay tuned. In the mean time, have fun with MVVM in WPF4/SL4!&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="margin-bottom: -1em"&gt;   &lt;div style="vertical-align: middle"&gt;&lt;a href="http://www.galasoft.ch/"&gt;&lt;img title="GalaSoft Laurent Bugnion" alt="GalaSoft Laurent Bugnion" src="http://www.galasoft.ch/logo/Current/logo_120x30.png" /&gt;&lt;/a&gt; &lt;/div&gt;    &lt;div style="position: relative; top: -36px; left: 130px"&gt;&lt;strong&gt;&lt;a href="http://www.galasoft.ch/contact_en.html"&gt;Laurent Bugnion (GalaSoft)&lt;/a&gt;&lt;/strong&gt;       &lt;br /&gt;&lt;a href="http://feeds.feedburner.com/galasoft"&gt;Subscribe&lt;/a&gt; | &lt;a href="http://twitter.com/lbugnion"&gt;Twitter&lt;/a&gt; | &lt;a href="http://www.facebook.com/lbugnion"&gt;Facebook&lt;/a&gt; | &lt;a href="http://www.flickr.com/photos/lbugnion"&gt;Flickr&lt;/a&gt; | &lt;a href="http://www.linkedin.com/in/lbugnion"&gt;LinkedIn&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136623"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136623" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/136623.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2009/11/30/mvvm-light-toolkit-v3-alpha-3-for-wpf4sl4.aspx</guid>
            <pubDate>Mon, 30 Nov 2009 22:56:14 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/136623.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/11/30/mvvm-light-toolkit-v3-alpha-3-for-wpf4sl4.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/136623.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/136623.aspx</trackback:ping>
        </item>
        <item>
            <title>My talk at #notatpdc postponed</title>
            <link>http://blog.galasoft.ch/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</link>
            <description>&lt;p&gt;Hey guys,&lt;/p&gt;  &lt;p&gt;I am really sorry for having to postpone my talk about Expression Blend 3 and SketchFlow. We had some huge difficulties with the NotAtPDC.com website, and unfortunately we were not able to locate the site administrator on time to solve the issue. Without a speaker login, I was able to talk to the attendees, but not share my desktop. Now I love to &lt;strong&gt;talk&lt;/strong&gt; about Blend but I love even more to &lt;strong&gt;show&lt;/strong&gt; Blend ;)&lt;/p&gt;  &lt;p&gt;Ironically, as a Microsoft MVP I do have a LiveMeeting account, so I would be able to host the talk myself, but organizing a LiveMeeting take a little time, and I didn’t want to rush into that, cut my talk short or step on the next speaker’s feet (let’s hope that the issues get solved in time for him!)&lt;/p&gt;  &lt;p&gt;We will definitely reschedule the talk, either within NotAtPDC (if we find a suitable time slot) or a bit later, so definitely stay tuned on this blog and &lt;a href="http://www.twitter.com/lbugnion"&gt;my twitter feed&lt;/a&gt; for more info.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://blog.galasoft.ch/aggbug/136419.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Laurent Bugnion</dc:creator>
            <guid>http://blog.galasoft.ch/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</guid>
            <pubDate>Thu, 19 Nov 2009 20:16:05 GMT</pubDate>
            <wfw:comment>http://blog.galasoft.ch/comments/136419.aspx</wfw:comment>
            <comments>http://blog.galasoft.ch/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx#feedback</comments>
            <wfw:commentRss>http://blog.galasoft.ch/comments/commentRss/136419.aspx</wfw:commentRss>
            <trackback:ping>http://blog.galasoft.ch/services/trackbacks/136419.aspx</trackback:ping>
        </item>
    </channel>
</rss>