<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Using the Command Pattern in Windows Forms clients</title>
	<atom:link href="http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/</link>
	<description>Trapped online since 2004</description>
	<lastBuildDate>Wed, 11 Jan 2012 10:22:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Exorsus</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-682</link>
		<dc:creator>Exorsus</dc:creator>
		<pubDate>Mon, 01 Mar 2010 09:42:38 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-682</guid>
		<description>n fact it’s so useful and so powerful that I’m a little disappointed that Microsoft didn’t provide something like it in the framework itself =&gt; Smart Client Software Factory ....</description>
		<content:encoded><![CDATA[<p>n fact it’s so useful and so powerful that I’m a little disappointed that Microsoft didn’t provide something like it in the framework itself =&gt; Smart Client Software Factory &#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rybolt</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-618</link>
		<dc:creator>Rybolt</dc:creator>
		<pubDate>Mon, 20 Apr 2009 13:28:55 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-618</guid>
		<description>Thanks for giving a concrete example.  I asked myself the same questions you did , (wire up in event handler or subclass button).

This is refreshing compared to all the other, over simplified examples on the webs.

Using INotifyPropertyChanged is good idea, yet another pattern (i.e. Observer).  Be cautious to not raise OnPropertyChange on non-UI thread though.

Good day.</description>
		<content:encoded><![CDATA[<p>Thanks for giving a concrete example.  I asked myself the same questions you did , (wire up in event handler or subclass button).</p>
<p>This is refreshing compared to all the other, over simplified examples on the webs.</p>
<p>Using INotifyPropertyChanged is good idea, yet another pattern (i.e. Observer).  Be cautious to not raise OnPropertyChange on non-UI thread though.</p>
<p>Good day.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-566</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Tue, 25 Nov 2008 16:32:50 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-566</guid>
		<description>This technique plays quite nicely with System.ComponentModel.IExtenderProvider too. You can use that interface to define a component which decorates your user interface controls with command keys, which reference back into a Dictionary of Command objects.</description>
		<content:encoded><![CDATA[<p>This technique plays quite nicely with System.ComponentModel.IExtenderProvider too. You can use that interface to define a component which decorates your user interface controls with command keys, which reference back into a Dictionary of Command objects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-560</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Sun, 16 Nov 2008 01:11:12 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-560</guid>
		<description>Any guidance for binding these commands to a menustrip/menuitem for enabled/disabled?</description>
		<content:encoded><![CDATA[<p>Any guidance for binding these commands to a menustrip/menuitem for enabled/disabled?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Using Commands in BabySmash &#124; a geek trapped in a cool guy&#8217;s body</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-303</link>
		<dc:creator>Using Commands in BabySmash &#124; a geek trapped in a cool guy&#8217;s body</dc:creator>
		<pubDate>Fri, 06 Jun 2008 13:27:08 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-303</guid>
		<description>[...] Posts StaticResource does not mean staticRedoing the Options Dialog in BabySmashUsing the Command Pattern in Windows Forms clientsThe Missing .NET #4: Cue Banner in WPF (I mean, Watermark in WPF)The Missing .NET #3: An [...]</description>
		<content:encoded><![CDATA[<p>[...] Posts StaticResource does not mean staticRedoing the Options Dialog in BabySmashUsing the Command Pattern in Windows Forms clientsThe Missing .NET #4: Cue Banner in WPF (I mean, Watermark in WPF)The Missing .NET #3: An [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-100</link>
		<dc:creator>Jason</dc:creator>
		<pubDate>Tue, 23 May 2006 08:37:00 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-100</guid>
		<description>Tommy,&lt;br /&gt;&lt;br /&gt;You&#039;re absolutely right.&lt;br /&gt;&lt;br /&gt;That&#039;s a very effective way to create commands that are always enabled or are local to a single form, with access to all of the form&#039;s variables.&lt;br /&gt;&lt;br /&gt;However, it wouldn&#039;t scale to business objects that are shared across forms. Suppose I had an app that had a notify icon with a context menu and a main form with two ways of performing an action that manipulated a remote object on a different machine. A full-fledged Command object would scale a lot better in that scenario.</description>
		<content:encoded><![CDATA[<p>Tommy,</p>
<p>You&#8217;re absolutely right.</p>
<p>That&#8217;s a very effective way to create commands that are always enabled or are local to a single form, with access to all of the form&#8217;s variables.</p>
<p>However, it wouldn&#8217;t scale to business objects that are shared across forms. Suppose I had an app that had a notify icon with a context menu and a main form with two ways of performing an action that manipulated a remote object on a different machine. A full-fledged Command object would scale a lot better in that scenario.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tommy Carlier</title>
		<link>http://www.ageektrapped.com/blog/using-the-command-pattern-in-windows-forms-clients/comment-page-1/#comment-99</link>
		<dc:creator>Tommy Carlier</dc:creator>
		<pubDate>Sat, 20 May 2006 11:20:00 +0000</pubDate>
		<guid isPermaLink="false">http://69.42.58.100/~jaso3118/blog/using-the-command-pattern-in-windows-forms-clients/#comment-99</guid>
		<description>To make simple commands without having to make a separate class for each command, you can create a default command that takes a delegate, like this:&lt;br /&gt;&lt;br /&gt;public class ActionCommand : Command&lt;br /&gt;{&lt;br /&gt;ThreadStart fFunc;&lt;br /&gt;public ActionCommand(ThreadStart func) { fFunction = func; }&lt;br /&gt;public override void Execute() { fFunction(); }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;And to use it:&lt;br /&gt;Command myCommand = new ActionCommand(delegate&lt;br /&gt;{&lt;br /&gt;// code of the command&lt;br /&gt;});</description>
		<content:encoded><![CDATA[<p>To make simple commands without having to make a separate class for each command, you can create a default command that takes a delegate, like this:</p>
<p>public class ActionCommand : Command<br />{<br />ThreadStart fFunc;<br />public ActionCommand(ThreadStart func) { fFunction = func; }<br />public override void Execute() { fFunction(); }<br />}</p>
<p>And to use it:<br />Command myCommand = new ActionCommand(delegate<br />{<br />// code of the command<br />});</p>
]]></content:encoded>
	</item>
</channel>
</rss>

