<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Alexey Zakharov's Blog</title><link>https://weblogs.asp.net:443/alexeyzakharov/</link><description></description><item><title>My new blog is now hosted on posterous</title><link>https://weblogs.asp.net:443/alexeyzakharov/my-new-blog-is-now-hosted-on-posterous</link><description>&lt;p&gt;My new blog is now hosted on posterous: &lt;a href="http://zakharov.posterous.com" title="Alexey Zakharov blog"&gt;http://zakharov.posterous.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Im not writing about ms staff anymore... I have totally switched to open source technologies and now focused on HTML 5 web development using Ruby and Nodejs.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://github.com/lexer" title="Fork Alexey Zakharov on Github"&gt;Fork me on github!&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Mon, 09 May 2011 03:44:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/my-new-blog-is-now-hosted-on-posterous</guid></item><item><title>HTML 5 vs Silverlight : Sencha - The First HTML5 Mobile App Framework </title><link>https://weblogs.asp.net:443/alexeyzakharov/html-5-vs-silverlight-sencha-the-first-html5-mobile-app-framework</link><description>&lt;p&gt;&amp;nbsp;While Microsoft Silverlight and Adobe Flex future on Apple iOS is still 
uncertain ExtJs released "The First HTML5 Mobile App Framework" called 
Sencha that works on both Apple iOS and Google Android touchscreen 
devices. &lt;a href="http://witcraft.ru/Blog/Post/html-5-vs-silverlight-sencha" title="HTML 5 vs Silverlight : Sencha - The First HTML5 Mobile App Framework " mce_href="http://witcraft.ru/Blog/Post/html-5-vs-silverlight-sencha"&gt;Read more&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Mon, 26 Jul 2010 12:43:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/html-5-vs-silverlight-sencha-the-first-html5-mobile-app-framework</guid><category>ASP.NET</category><category>ASP.NET MVC</category><category>Google Android</category><category>HTML 5</category><category>iOS</category><category>iPhone</category><category>Silverlight</category></item><item><title>How to use hosted versions of popular javascript libraries only after deployment in asp.net mvc</title><link>https://weblogs.asp.net:443/alexeyzakharov/how-to-use-hosted-versions-of-popular-javascript-libraries-only-after-deployment-in-asp-net-mvc</link><description>&lt;p&gt;There is good website performance practice to use hosted version of 
popular javascript libraries such as jquery after deployment. However, 
while running application on local developer machine you’d better to use
 local version instead. In this post I will show you how you can solve 
this problem with ASP.NET MVC build in methods.&lt;/p&gt;&lt;p&gt;&lt;a href="http://witcraft.ru/Blog/Post/how-to-use-hosted-version-of-popular-javascript-libraries-only-after-deployment-in-asp-net-mvc" title="How to use hosted versions of popular javascript libraries only after deployment in asp.net mvc" mce_href="http://witcraft.ru/Blog/Post/how-to-use-hosted-version-of-popular-javascript-libraries-only-after-deployment-in-asp-net-mvc"&gt;Read more... &lt;/a&gt;&lt;br&gt;&lt;/p&gt;</description><pubDate>Sat, 10 Jul 2010 07:06:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/how-to-use-hosted-versions-of-popular-javascript-libraries-only-after-deployment-in-asp-net-mvc</guid><category>ASP.NET</category><category>ASP.NET MVC</category><category>JavaScript</category></item><item><title>We have lauched our company's website</title><link>https://weblogs.asp.net:443/alexeyzakharov/we-have-lauched-our-company-s-website</link><description>&lt;p&gt;Hi guys,&lt;/p&gt;&lt;p&gt;Today we have launched our company's &lt;a href="http://witcraft.ru" title="Witcraft website" target="_blank" mce_href="http://witcraft.ru"&gt;web site http://witcraft.ru&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;Also I'd like to announce that my feed is also relocated. So my future posts will be &lt;a href="http://witcraft.ru/blog" target="_blank" title="Witcraft blog" mce_href="http://witcraft.ru/blog"&gt;here - http://witcraft.ru/blog&lt;/a&gt; or you can just subscribe on our &lt;a href="http://feeds.feedburner.com/witcraft" title="Witcraft blog feed" target="_blank" mce_href="http://feeds.feedburner.com/witcraft"&gt;feed - http://feeds.feedburner.com/witcraft&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;We've got a lot to share about our development process, vision of web's future and experience with modern technologies such as Ruby on Rails, ASP.NET MVC, Silverlight, Mongo etc.&lt;br&gt;&lt;br&gt;So bookmark it! Hot stuff would be here soon! &lt;br&gt;&lt;/p&gt;</description><pubDate>Thu, 08 Jul 2010 09:04:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/we-have-lauched-our-company-s-website</guid><category>ASP.NET</category><category>ASP.NET MVC</category><category>Mongo</category><category>RoR</category><category>Silverlight</category></item><item><title>A strange bug of Blend 4 RC</title><link>https://weblogs.asp.net:443/alexeyzakharov/a-strange-bug-of-blend-4-rc</link><description>&lt;p&gt;&amp;nbsp;We've been breaking our heads about a week because blend 4 RC stop showing visual states of controls in design view.&lt;/p&gt;&lt;p&gt;Here is the &lt;a href="https://aspblogs.blob.core.windows.net/media/alexeyzakharov/Media/SilverlightApplication13.zip%2520" mce_href="https://aspblogs.blob.core.windows.net/media/alexeyzakharov/SSilverlightApplication13.zip"&gt;simple blend projec&lt;/a&gt;t with single button style inside app.xaml. Could anybody see visual states changes of this button style in blend?&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Mon, 26 Apr 2010 18:38:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/a-strange-bug-of-blend-4-rc</guid><category>Silverlight</category><category>WPF</category></item><item><title>Alternative Grid Layout for Silverlight suggestion</title><link>https://weblogs.asp.net:443/alexeyzakharov/alternative-grid-layout-for-silverlight-suggestion</link><description>
&lt;p&gt;I've &lt;a href="http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/suggestions/666521-add-analog-of-adobe-flex-grid-layout-like-html-ta" mce_href="http://dotnet.uservoice.com/forums/4325-silverlight-feature-suggestions/suggestions/666521-add-analog-of-adobe-flex-grid-layout-like-html-ta"&gt;proposed a suggestion to create alternative grid layout for Silverlight&lt;/a&gt;. Please vote for it if also faced the same problems.&lt;/p&gt;

&lt;p&gt;As i write before current Silverlight Grid Layout breakes best&amp;nbsp;practices of HTML and Adobe Flex Grid layouts. Current&amp;nbsp;defention based approach&amp;nbsp;have following disadvantages that makes xaml coding very hard:&lt;/p&gt;

&lt;p&gt;1. It is very hard to create new row. In that case you should rewrite&lt;br&gt;all Grid.Row and Grid.Columns for all rows inserted below.&lt;br&gt;2. Defenitions are static by&amp;nbsp;their nature and because of it, it is&lt;br&gt;impossible to use grid for dynamic forms. Currently even in toolkit DataForm&lt;br&gt;Microsoft&amp;nbsp;is using StackPanel. But StackPanel is not designed for multi&lt;br&gt;column layout that have dataform.&lt;br&gt;3. It is impossible to use Grid as ItemsPanel for ItemsControl&lt;br&gt;&lt;/p&gt;

&lt;p&gt;Here is a sample code of AdobeFlex datagrid, which incorporates best&lt;br&gt;practices of HTML.&lt;/p&gt;

&lt;p&gt;&amp;lt;mx:Grid id="myGrid"&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define Row 1. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridRow id="row1"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define the first cell of Row 1. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:Button label="Button 1"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define the second cell of Row 1. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:Button label="2"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define the third cell of Row 1. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:Button label="Button 3"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridRow&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define Row 2. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridRow id="row2"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define a single cell to span three columns of Row 2. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem colSpan="3" horizontalAlign="center"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:Button label="Long-Named Button 4"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridRow&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define Row 3. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridRow id="row3"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define an empty first cell of Row 3. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- Define a cell to span columns 2 and 3 of Row 3. --&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:GridItem colSpan="2" horizontalAlign="center"&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;mx:Button label="Button 5"/&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridItem&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:GridRow&amp;gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/mx:Grid&amp;gt;&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fweblogs.asp.net%2falexeyzakharov%2farchive%2f2010%2f04%2f20%2falternative-grid-layout-for-silverlight-suggestion.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fweblogs.asp.net%2falexeyzakharov%2farchive%2f2010%2f04%2f20%2falternative-grid-layout-for-silverlight-suggestion.aspx" alt="kick it on DotNetKicks.com" border="0"&gt;&lt;/a&gt;
</description><pubDate>Tue, 20 Apr 2010 10:21:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/alternative-grid-layout-for-silverlight-suggestion</guid><category>Silverlight</category><category>WPF</category></item><item><title>Rapid convention based development of REST webservices for Silverlight</title><link>https://weblogs.asp.net:443/alexeyzakharov/rapid-convention-based-development-of-rest-webservices-for-silverlight</link><description>&lt;p&gt;&amp;nbsp;I've just published a &lt;a href="http://halcyone.codeplex.com/" mce_href="http://halcyone.codeplex.com/"&gt;small framework on codeplex&lt;/a&gt;, which allows rapidly create REST webservices for Silverlight applications. This framework is the first public component of our Silverlight Application Framework. You can read more about it in &lt;a href="http://www.silverlightshow.net/items/Introducing-to-Halcyone-Silverlight-Application-Framework-Silverlight-Rest-Extensions.aspx" mce_href="http://www.silverlightshow.net/items/Introducing-to-Halcyone-Silverlight-Application-Framework-Silverlight-Rest-Extensions.aspx"&gt;my article for SilverlightShow portal&lt;/a&gt;.&lt;br&gt;&lt;/p&gt;</description><pubDate>Mon, 19 Apr 2010 18:24:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/rapid-convention-based-development-of-rest-webservices-for-silverlight</guid><category>ASP.NET</category><category>ASP.NET MVC</category><category>Silverlight</category></item><item><title>Silverlight Grid Layout is pain</title><link>https://weblogs.asp.net:443/alexeyzakharov/silverlight-grid-layout-is-pain</link><description>&lt;p&gt;&amp;nbsp;I think one of the biggest mistake of Silverlight and WPF is its Grid layout.&lt;/p&gt;&lt;p&gt;Imagine you have a data form with 2 columns and 5 rows. You need to place new row after the first one. As a result you need to rewrite Grid.Rows and Grid.Columns in all rows belows. &lt;/p&gt;&lt;p&gt;But the worst thing of such approach is that it is static. So you need predefine all your rows and columns. As a result creating of simple dynamic datagrid or dataform become impossible... &lt;/p&gt;&lt;p&gt;So the question if why best practices of HTML and Adobe Flex were dropped????&lt;/p&gt;&lt;p&gt;If anybody have tried to port Flex Grid layout to silverlight please mail me or drop a comment. &lt;br&gt;&lt;/p&gt;&lt;br&gt;</description><pubDate>Mon, 12 Apr 2010 17:56:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/silverlight-grid-layout-is-pain</guid><category>Pain</category><category>Silverlight</category><category>WPF</category></item><item><title>Silverlight layout hack: Centered content with fixed maxwidth</title><link>https://weblogs.asp.net:443/alexeyzakharov/silverlight-layout-hack-centered-content-with-fixed-maxwidth</link><description>&lt;p&gt;&amp;nbsp;Today we need to create centered content with fixed maxwidth. It is very easy to implement it for fixed width, but is not clear how to achieve the same for maxwidth.&lt;/p&gt;&lt;p&gt;The solution to the problem is Grid with 3 columns: &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;Grid&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid.ColumnDefenitions&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ColumnDefenition Width="0.01*" /&amp;gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ColumnDefenition Width="0.98*" MaxWidth="1280"  /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;ColumnDefenition Width="0.01*"  /&amp;gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid.ColumnDefenitions&amp;gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/Grid&amp;gt;&lt;/p&gt;&lt;p&gt;Huh... like html coding xaml coding is still full of dirty tricks =) &lt;br&gt;&lt;/p&gt;</description><pubDate>Fri, 02 Apr 2010 16:45:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/silverlight-layout-hack-centered-content-with-fixed-maxwidth</guid><category>Hacks</category><category>Silverlight</category><category>Tips amp; Tricks</category><category>WPF</category></item><item><title>Silverlight web site for innovation business incubator of Chelyabinsk</title><link>https://weblogs.asp.net:443/alexeyzakharov/silverlight-web-site-for-innovation-business-incubator-of-chelyabinsk</link><description>
&lt;p&gt;&amp;nbsp;Today we released Silverlight powered web site for &lt;a href="http://innovation-chel.ru" title="web site of innovation business incubator of Chelyabinsk" mce_href="http://innovation-chel.ru"&gt;innovation business incubator of Chelyabinsk&lt;/a&gt;. I hope you find it interesting!&lt;br&gt;&lt;/p&gt;
</description><pubDate>Sat, 27 Mar 2010 11:43:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/silverlight-web-site-for-innovation-business-incubator-of-chelyabinsk</guid><category>ASP.NET MVC</category><category>Silverlight</category><category>WCF</category></item><item><title>File manager for Hyper-V Server</title><link>https://weblogs.asp.net:443/alexeyzakharov/file-manager-for-hyper-v-server</link><description>For all who are using Windows Hyper-V Server I want to recommend Far Manager for file managment. Perhaps it is the best file manager for this console only OS.&lt;br&gt;</description><pubDate>Fri, 26 Mar 2010 18:05:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/file-manager-for-hyper-v-server</guid><category>Hyper V Server</category></item><item><title>Silverlight Commands Hacks: Passing EventArgs as CommandParameter to DelegateCommand triggered by EventTrigger</title><link>https://weblogs.asp.net:443/alexeyzakharov/silverlight-commands-hacks-passing-eventargs-as-commandparameter-to-delegatecommand-triggered-by-eventtrigger</link><description>&lt;p&gt;Today I've tried to find a way how to pass EventArgs as CommandParameter to DelegateCommand triggered by EventTrigger. By reverse engineering of default InvokeCommandAction I find that blend team just ignores event args.&lt;/p&gt;&lt;p&gt;To resolve this issue I have created my own action for triggering delegate commands.&lt;/p&gt;&lt;p&gt;public sealed class InvokeDelegateCommandAction : TriggerAction&amp;lt;DependencyObject&amp;gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static readonly DependencyProperty CommandParameterProperty =&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DependencyProperty.Register("CommandParameter", typeof(object), typeof(InvokeDelegateCommandAction), null);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static readonly DependencyProperty CommandProperty = DependencyProperty.Register(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "Command", typeof(ICommand), typeof(InvokeDelegateCommandAction), null);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static readonly DependencyProperty InvokeParameterProperty = DependencyProperty.Register(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "InvokeParameter", typeof(object), typeof(InvokeDelegateCommandAction), null);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private string commandName;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object InvokeParameter&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.GetValue(InvokeParameterProperty);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetValue(InvokeParameterProperty, value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public ICommand Command&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (ICommand)this.GetValue(CommandProperty);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetValue(CommandProperty, value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string CommandName&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.commandName;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.CommandName != value)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.commandName = value;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public object CommandParameter&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.GetValue(CommandParameterProperty);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.SetValue(CommandParameterProperty, value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;/summary&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /// &amp;lt;param name="parameter"&amp;gt;&amp;lt;/param&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; protected override void Invoke(object parameter)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.InvokeParameter = parameter;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.AssociatedObject != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICommand command = this.ResolveCommand();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((command != null) &amp;amp;&amp;amp; command.CanExecute(this.CommandParameter))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command.Execute(this.CommandParameter);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; private ICommand ResolveCommand()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICommand command = null;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (this.Command != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return this.Command;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var frameworkElement = this.AssociatedObject as FrameworkElement;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (frameworkElement != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; object dataContext = frameworkElement.DataContext;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dataContext != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PropertyInfo commandPropertyInfo = dataContext&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .GetType()&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .GetProperties(BindingFlags.Public | BindingFlags.Instance)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .FirstOrDefault(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p =&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; typeof(ICommand).IsAssignableFrom(p.PropertyType) &amp;amp;&amp;amp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string.Equals(p.Name, this.CommandName, StringComparison.Ordinal)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (commandPropertyInfo != null)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; command = (ICommand)commandPropertyInfo.GetValue(dataContext, null);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return command;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;Example:&lt;/p&gt;&lt;p&gt;&amp;lt;ComboBox&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComboBoxItem Content="Foo option 1" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComboBoxItem Content="Foo option 2" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ComboBoxItem Content="Foo option 3" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Interactivity:Interaction.Triggers&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Interactivity:EventTrigger EventName="SelectionChanged" &amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Presentation:InvokeDelegateCommandAction &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Command="{Binding SubmitFormCommand}"&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CommandParameter="{Binding RelativeSource={RelativeSource Self}, Path=InvokeParameter}" /&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Interactivity:EventTrigger&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Interactivity:Interaction.Triggers&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;lt;/ComboBox&amp;gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;BTW: InvokeCommanAction CommandName property are trying to find command in properties of view. It very strange, because in MVVM pattern command should be in viewmodel supplied to datacontext. &lt;br&gt;&lt;/p&gt;</description><pubDate>Wed, 24 Mar 2010 06:19:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/silverlight-commands-hacks-passing-eventargs-as-commandparameter-to-delegatecommand-triggered-by-eventtrigger</guid><category>Blend</category><category>Commands</category><category>MVVM</category><category>Silverlight</category><category>WPF</category></item><item><title>Connect ViewModel and View using Unity</title><link>https://weblogs.asp.net:443/alexeyzakharov/connect-viewmodel-and-view-using-unity</link><description>&lt;p&gt;In this post i want to describe the approach of connecting View and ViewModel which I'm using in my last project.&lt;/p&gt;&lt;p&gt;The main idea is to do it during resolve inside of unity container. It can be achived using InjectionFactory introduced in Unity 2.0&lt;/p&gt;&lt;p&gt;&amp;nbsp;public static class MVVMUnityExtensions&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void RegisterView&amp;lt;TView, TViewModel&amp;gt;(this IUnityContainer container) where TView : FrameworkElement&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; container.RegisterView&amp;lt;TView, TView, TViewModel&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void RegisterView&amp;lt;TViewFrom, TViewTo, TViewModel&amp;gt;(this IUnityContainer container)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where TViewTo : FrameworkElement, TViewFrom&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; container.RegisterType&amp;lt;TViewFrom&amp;gt;(new InjectionFactory(&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c =&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var model = c.Resolve&amp;lt;TViewModel&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var view = Activator.CreateInstance&amp;lt;TViewTo&amp;gt;();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; view.DataContext = model;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return view;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;}&lt;/p&gt;&lt;p&gt;And here is the sample how it could be used:&lt;/p&gt;&lt;p&gt;var unityContainer = new UnityContainer();&lt;br&gt;&lt;br&gt;unityContainer.RegisterView&amp;lt;IFooView, FooView, FooViewModel&amp;gt;();&lt;br&gt;&lt;br&gt;IFooView view = unityContainer.Resolve&amp;lt;IFooView&amp;gt;(); // view with injected viewmodel in its datacontext&lt;/p&gt;&lt;p&gt;Please tell me your prefered way to connect viewmodel and view. &lt;br&gt;&lt;/p&gt;</description><pubDate>Sun, 14 Mar 2010 13:47:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/connect-viewmodel-and-view-using-unity</guid><category>Dependency Injection</category><category>DI</category><category>Inversion of Control</category><category>IoC</category><category>MVVM</category><category>Silverlight</category><category>Unity</category><category>WPF</category></item><item><title>Disable Visual Studio XAML Designer better way.</title><link>https://weblogs.asp.net:443/alexeyzakharov/disable-visual-studio-xaml-designer-better-way</link><description>In my previous posts I've already written about  disabling  XAML Designer in Visual Studio 2010, but i find that way very bad, because in spite of we will see only XAML code, XAML designer would also try to render.

Much better and simple way is it to open your xaml with "open with" option and choose " xml editor" instead of "xml editor chooser" and then set it as default option. In this case XAML designer won't try to render and all those ugly lags will go away.
</description><pubDate>Wed, 27 Jan 2010 07:41:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/disable-visual-studio-xaml-designer-better-way</guid><category>SIlverlight WPF</category></item><item><title>AnonymousComparer - lambda compare selector for Linq</title><link>https://weblogs.asp.net:443/alexeyzakharov/anonymouscomparer-lambda-compare-selector-for-linq</link><description>&lt;p&gt;&amp;nbsp;One &lt;a href="http://neue.cc/" mce_href="http://neue.cc/"&gt;guy&lt;/a&gt; from Japan created a very cool linq extension. It is called AnonymousComparer, which allows to use Func instead of annoying IEqualityComparer.&lt;/p&gt;&lt;pre&gt;    &lt;span style="color: Blue;"&gt;var&lt;/span&gt; anonymous = &lt;span style="color: Blue;"&gt;new&lt;/span&gt;[] &lt;br&gt;    {&lt;br&gt;        &lt;span style="color: Blue;"&gt;new&lt;/span&gt; { Foo = &lt;span style="color: rgb(163, 21, 21);"&gt;"A"&lt;/span&gt;, Key = 10 },&lt;br&gt;        &lt;span style="color: Blue;"&gt;new&lt;/span&gt; { Foo = &lt;span style="color: rgb(163, 21, 21);"&gt;"B"&lt;/span&gt;, Key = 15 }&lt;br&gt;    };&lt;br&gt;    &lt;span style="color: Green;"&gt;// true&lt;/span&gt;&lt;br&gt;    anonymous.Contains(&lt;span style="color: Blue;"&gt;new&lt;/span&gt; { Foo = &lt;span style="color: rgb(163, 21, 21);"&gt;"dummy"&lt;/span&gt;, Key = 10 }, a =&amp;gt; a.Key);&lt;br&gt;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Tue, 12 Jan 2010 06:52:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/anonymouscomparer-lambda-compare-selector-for-linq</guid><category>.NET CLR</category><category>BCL</category><category>C#</category><category>Linq</category></item><item><title>Subscribe RSS with your own language with Google Reader</title><link>https://weblogs.asp.net:443/alexeyzakharov/subscribe-rss-with-your-own-language-with-google-reader</link><description>&lt;p&gt;&amp;nbsp;Today I find a very interesting blog, but the bad thing was that it is in Japanese. The great i thing i discover for myself is that i can subscribe this rss in my own language with google reader. &lt;br&gt;&lt;/p&gt;</description><pubDate>Tue, 12 Jan 2010 06:41:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/subscribe-rss-with-your-own-language-with-google-reader</guid><category>Google</category></item><item><title>TileMode feature request for Silverlight 4</title><link>https://weblogs.asp.net:443/alexeyzakharov/tilemode-feature-request-for-silverlight-4</link><description>&lt;p&gt;&amp;nbsp;After using of SL 4 beta I found that there is still no tilemode support in imagebrush.&lt;/p&gt;&lt;p&gt;This feature is extreamely useful when u want to fill some area with image pattern like wood, steel or some other material. HTML CSS supports this from the ancient time with repeat-x property and that was&amp;nbsp; really bad surprise for us when we find it missing in Silverlight. &lt;/p&gt;&lt;p&gt;One guy have already reported &lt;a href="http://silverlight.uservoice.com/pages/4325-runtime-feature-suggestions/suggestions/306693-implement-tilebrush-for-tiled-image-support?ref=title" mce_href="http://silverlight.uservoice.com/pages/4325-runtime-feature-suggestions/suggestions/306693-implement-tilebrush-for-tiled-image-support?ref=title"&gt;this feature in Silverlight Feature Request Web site &lt;/a&gt;&lt;/p&gt;&lt;p&gt;I hope that you, my readers will join me and vote for this feature.&lt;br&gt;&lt;/p&gt;</description><pubDate>Tue, 29 Dec 2009 16:54:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/tilemode-feature-request-for-silverlight-4</guid><category>Silverlight</category></item><item><title>New article for SilverlightShow: Deep Dive Into Silverlight Services Part 2: Serialization on the speed of light with Google Protocol Buffers</title><link>https://weblogs.asp.net:443/alexeyzakharov/new-article-for-silverlightshow-deep-dive-into-silverlight-services-part-2-serialization-on-the-speed-of-light-with-google-protocol-buffers</link><description>&lt;p&gt;&amp;nbsp;I've written new &lt;a href="http://www.silverlightshow.net/items/Deep-Dive-Into-WCF-Part-2-Serialization-on-the-speed-of-light-with-Google-Protocol-Buffers.aspx" mce_href="http://www.silverlightshow.net/items/Deep-Dive-Into-WCF-Part-2-Serialization-on-the-speed-of-light-with-Google-Protocol-Buffers.aspx"&gt;article&lt;/a&gt; for SilverlightShow.net. In this article I’ve showed how you can use ASP.NET MVC and Google Protocol Buffers to create fast and scalable REST services. Enjoy!   &lt;/p&gt;</description><pubDate>Tue, 22 Dec 2009 18:26:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/new-article-for-silverlightshow-deep-dive-into-silverlight-services-part-2-serialization-on-the-speed-of-light-with-google-protocol-buffers</guid><category>ASP.NET</category><category>MVC</category><category>Protocol Buffers</category><category>Silverlight</category></item><item><title>We launched our first commercial silverlight rich internet application : house hotel project</title><link>https://weblogs.asp.net:443/alexeyzakharov/we-launched-our-first-commercial-silverlight-rich-internet-application-house-hotel-project</link><description>
&lt;p&gt;Today we launched our first commercial Silverlight rich internet application called &lt;a href="http://househotel74.ru" title="House hotel : mini hotel based in Chelyabinsk" mce_href="http://househotel74.ru"&gt;house hotel&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://househotel74.ru" title="House hotel : mini hotel based in Chelyabinsk" mce_href="http://househotel74.ru"&gt;House hotel&lt;/a&gt; is silverlight powered web site created for promotion of mini hotel based in Chelyabinsk. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Also I'd like to announce that our company are currently looking for new orders on silverlight rich internet applications. If you need or know the people who needs silverlight application or silverlight powered web site please &lt;a href="http://witcraft.ru" title="Witcraft: Agile software development company focused on development of rich internet applications." mce_href="http://witcraft.ru"&gt;contact us&lt;/a&gt;. &lt;/b&gt;&lt;br&gt;&lt;/p&gt;
</description><pubDate>Thu, 03 Dec 2009 13:07:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/we-launched-our-first-commercial-silverlight-rich-internet-application-house-hotel-project</guid><category>Silverlight WPF ASP.NET ASP.NET MVC Witcraft</category></item><item><title>Disable XAML Designer in Visual Studio 2010</title><link>https://weblogs.asp.net:443/alexeyzakharov/disable-xaml-designer-in-visual-studio-2010</link><description>&lt;p&gt;In visual studio 2010 Silverligh XAML designer is visible by default. For me it is totally useless and only require additional machine resources.&lt;/p&gt;&lt;p&gt;Also I think it will never provide functionality close to Blend.&lt;/p&gt;&lt;p&gt;So I recommend everybody to turn it off.&lt;/p&gt;&lt;p&gt;You can do it by selection following option: &lt;br&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;b&gt;Always open documents in full XAML view&lt;/b&gt; under Tools -&amp;gt; Options -&amp;gt; Text Editor -&amp;gt; XAML -&amp;gt; Miscellaneus&lt;/p&gt;</description><pubDate>Thu, 26 Nov 2009 06:04:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/alexeyzakharov/disable-xaml-designer-in-visual-studio-2010</guid><category>SIlverlight WPF</category></item></channel></rss>