<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>MVVM Foundation</title><link>http://mvvmfoundation.codeplex.com/Project/ProjectRss.aspx</link><description>MVVM Foundation is a library of classes that are very useful when building applications based on the Model-View-ViewModel philosophy.  The library is small and concentrated on providing only the mo...</description><item><title>New Post: PropertyObserver : what am I doing wrong ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=85409</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Sorry the for the late reply, I've been very busy. &amp;nbsp;You nailed it with your EDIT on the original post. &amp;nbsp;Since PropertyObserver uses a weak event handler for the source object's PropertyChanged event, you must root the instance somewhere. &amp;nbsp;Otherwise the GC will collect the instance and your event handling method will never be invoked.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Josh&lt;/p&gt;&lt;/div&gt;</description><author>JoshSmithonWpf</author><pubDate>Tue, 09 Mar 2010 20:03:25 GMT</pubDate><guid isPermaLink="false">New Post: PropertyObserver : what am I doing wrong ? 20100309080325P</guid></item><item><title>New Post: about "update" in MVVM</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=77378</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;you are saying that it is possible to use UpdateSourceTrigger&amp;nbsp;= Explicit in MVVM, I don't understand how instance of BindingExpression could be got in ViewModel if ViewModel doesn't have a reference to UI components. So, if I didn't use MVVM then in code behind file I would use something like that:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;BindingExpression be = tbAge.GetBindingExpression(TextBox.TextProperty);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; be.UpdateSource();&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;where tbAge is my TextBox which is bound in XAML, but how to get instance of BindingExpression in MVVM case ?&lt;/p&gt;&lt;/div&gt;</description><author>SergeyPikhulya</author><pubDate>Thu, 04 Mar 2010 01:39:37 GMT</pubDate><guid isPermaLink="false">New Post: about "update" in MVVM 20100304013937A</guid></item><item><title>Updated Wiki: Home</title><link>http://mvvmfoundation.codeplex.com/wikipage?version=8</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;MVVM Foundation is a library of classes that are very useful when building applications based on the Model-View-ViewModel philosophy.  The library is small and concentrated on providing only the most indispensable tools needed by most MVVM application developers.&lt;br /&gt;&lt;br /&gt;To download the latest version of MVVM Foundation, go to the &lt;b&gt;Source Code&lt;/b&gt; tab on this page.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx" class="externalLink"&gt;Model-View-ViewModel&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a way of creating client applications that leverages core features of the WPF platform, allows for simple unit testing of application functionality, and helps developers and designers work together with less technical difficulties.  The classes in the MVVM Foundation are time-tested tools in the toolbox of many WPF developers around the world.  Now they all live in one convenient project...MvvmFoundation.Wpf.  The source code download also contains a set of unit tests and a demo application, which show how to use the classes.  If you want to learn more about MVVM be sure to read Josh Smith&amp;#39;s &lt;a href="http://advancedmvvm.com" class="externalLink"&gt;Advanced MVVM&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; book.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090051" class="externalLink"&gt;ObservableObject&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - This is intended to be the base class for ViewModel types, or any type that must provide property change notifications.  It implements INotifyPropertyChanged and, in debug builds, will verify that all property names passed through the PropertyChanged event are valid properties.  This class used to be called ViewModelBase.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090030" class="externalLink"&gt;RelayCommand&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - Provides for small, simple command declarations.  The execution logic, and optionally can-execute logic, is injected into its constructor.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://joshsmithonwpf.wordpress.com/2009/07/11/one-way-to-avoid-messy-propertychanged-event-handling/" class="externalLink"&gt;PropertyObserver&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - A standardized way to handle the INotifyPropertyChanged.PropertyChanged event of other objects.  This class uses weak references and the weak-event pattern to prevent memory leaks.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/" class="externalLink"&gt;Messenger&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; - The Messenger class is a lightweight way of passing messages between various ViewModel objects who do not need to be aware of each other.  This is based on the Mediator implementation created by Marlon Grech and Josh Smith, as seen on Marlon&amp;#39;s blog.&lt;br /&gt;&lt;br /&gt;MVVM Foundation is currently geared toward WPF only, but a Silverlight-compatible version will be added as time permits.  &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>JoshSmithOnWpf</author><pubDate>Tue, 16 Feb 2010 09:52:06 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100216095206A</guid></item><item><title>New Post: PropertyObserver : what am I doing wrong ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=85409</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hello, I can't get the PropertyObserver to work.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Window1.xaml : &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;Window x:Class=&amp;quot;TestPropertyObserver.Window1&amp;quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xmlns:x=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Title=&amp;quot;Window1&amp;quot; Height=&amp;quot;300&amp;quot; Width=&amp;quot;300&amp;quot;&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Grid&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;StackPanel&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;TextBox Text=&amp;quot;{Binding TextValue}&amp;quot;&amp;gt;&amp;lt;/TextBox&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;Button&amp;gt;Test&amp;lt;/Button&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/StackPanel&amp;gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Grid&amp;gt;&lt;br&gt;&amp;lt;/Window&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Window1.xaml.cs :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;public partial class Window1 : Window&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; public Window1()&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.InitializeComponent();&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; ViewModel viewModel = new ViewModel();&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; this.DataContext = viewModel;&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; new PropertyObserver&amp;lt;ViewModel&amp;gt;(viewModel).RegisterHandler(x =&amp;gt; x.TextValue,&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model =&amp;gt; &lt;span style="text-decoration:underline"&gt;Debug.WriteLine(&amp;quot;In observer&amp;quot;)&lt;/span&gt;);&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;/p&gt;
&lt;p&gt;&lt;strong&gt;ViewModel.cs :&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;public class ViewModel : ObservableObject&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; private string textValue;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string TextValue&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; get { return this.textValue; }&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; set&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.textValue = 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.RaisePropertyChanged(&amp;quot;TextValue&amp;quot;);&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; Debug.WriteLine(&amp;quot;In setter&amp;quot;);&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;/p&gt;
&lt;p&gt;The text &amp;quot;In setter&amp;quot; is displayed but not the text &amp;quot;In observer&amp;quot;&lt;/p&gt;
&lt;p&gt;Any ideas why ? Thanks&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>randoom</author><pubDate>Mon, 15 Feb 2010 17:57:24 GMT</pubDate><guid isPermaLink="false">New Post: PropertyObserver : what am I doing wrong ? 20100215055724P</guid></item><item><title>New Post: PropertyChangedEventManager.RemoveListener doesn't seem to do anything.</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=82328</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;The data object for my application has several editable properties, and several editable child objects.&amp;nbsp; I have a form at the top with all the fields that are directly on the object, and then I have a tab control below that, and each tab is bound to a logical child object.&lt;/p&gt;
&lt;p&gt;Whenever the user changes the main object, I only want the displayed tab to update.&amp;nbsp; Then the other tabs will update as the user selects them.&amp;nbsp; This reduces the time required to navigate through the objects using next/prev buttons.&lt;/p&gt;
&lt;p&gt;I'm accomplishing this using your property observer class.&amp;nbsp; Each tab's viewmodel registers a listener on the main object property of the main viewmodel.&amp;nbsp; When it changes, the tab's viewmodel fetches its data.&amp;nbsp; To keep the other &amp;quot;nondisplayed&amp;quot; tabs from also fetching data, I added an UnregisterHandler method to the property observer. Then a tab is clicked, the deselected tab calls unregister handler so that it is no longer listening for main object updates.&lt;/p&gt;
&lt;p&gt;Here is the code:&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;public&lt;/span&gt; PropertyObserver&amp;lt;TPropertySource&amp;gt; UnregisterHandler(Expression&amp;lt;Func&amp;lt;TPropertySource, &lt;span style="color:Blue"&gt;object&lt;/span&gt;&amp;gt;&amp;gt; expression)
        {
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (expression == &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
                &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; ArgumentNullException(&lt;span style="color:#A31515"&gt;&amp;quot;expression&amp;quot;&lt;/span&gt;);

            &lt;span style="color:Blue"&gt;string&lt;/span&gt; propertyName = GetPropertyName(expression);
            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (String.IsNullOrEmpty(propertyName))
                &lt;span style="color:Blue"&gt;throw&lt;/span&gt; &lt;span style="color:Blue"&gt;new&lt;/span&gt; ArgumentException(&lt;span style="color:#A31515"&gt;&amp;quot;'expression' did not provide a property name.&amp;quot;&lt;/span&gt;);

             TPropertySource propertySource = &lt;span style="color:Blue"&gt;this&lt;/span&gt;.GetPropertySource();
             &lt;span style="color:Blue"&gt;if&lt;/span&gt; (propertySource != &lt;span style="color:Blue"&gt;null&lt;/span&gt;)
             {
                 &lt;span style="color:Blue"&gt;if&lt;/span&gt; (_propertyNameToHandlerMap.ContainsKey(propertyName))
                 {
                     _propertyNameToHandlerMap.Remove(propertyName);
                     PropertyChangedEventManager.RemoveListener(propertySource, &lt;span style="color:Blue"&gt;this&lt;/span&gt;, propertyName);
                 }
             }

            &lt;span style="color:Blue"&gt;return&lt;/span&gt; &lt;span style="color:Blue"&gt;this&lt;/span&gt;;
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;It's a copy of the register handler method with a few key changes.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The problem I found is that the ReceiveWeakEvent method still fires.&amp;nbsp; When it gets to the Map.TryGetValue&lt;strong&gt; &lt;/strong&gt;part, it evaluates to false because the handler has been removed from the map.&amp;nbsp; Then I get a vague runtime exception.&lt;/p&gt;
&lt;p&gt;As a workaround, I replace the &amp;quot;remove handler&amp;quot; with &amp;quot;replace handler&amp;quot;:&lt;/p&gt;
&lt;p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Green"&gt;//_propertyNameToHandlerMap.Remove(propertyName);&lt;/span&gt;
_propertyNameToHandlerMap[propertyName] = (a) =&amp;gt; { };&lt;span style="color:Green"&gt;//replace with a dummy instead of removing.&lt;/span&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/p&gt;
&lt;p&gt;So, RecieveWeakEvent gets a hit on the map check; but the handler does nothing.&amp;nbsp; Everything works like it should.&amp;nbsp; When the tab is selected again, RegisterHandler replaces the dummy one with the real one.&lt;/p&gt;
&lt;p&gt;I want to know if there is something better I should be doing.&lt;/p&gt;&lt;/div&gt;</description><author>MattT</author><pubDate>Thu, 28 Jan 2010 19:01:05 GMT</pubDate><guid isPermaLink="false">New Post: PropertyChangedEventManager.RemoveListener doesn't seem to do anything. 20100128070105P</guid></item><item><title>New Post: Using some of your classes in my own mvvm codeplex project</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=81785</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi Josh!&lt;/p&gt;
&lt;p&gt;First of I love your MVVM Foundation and use many of your classes on a daily basis in my work1 However I have been wanting to create my own MVVM project on codeplex, it will be a kind of MVVM compilation of the most useful classes but nothing more and nothing less. I have lately developed many unreleased behaviors/actions/triggers that are perfect for use together with MVVM, but it would be even better if I could bundle these with a basic MVVM project that includes the messenger and relaycommand for example. Would this be ok as long as I include the same license as you do? I would also like to add a good basic dialog box support in this project, which I currently feel is missing in MVVM foundation.&lt;/p&gt;
&lt;p&gt;Keep up the good work! /Johan&lt;/p&gt;&lt;/div&gt;</description><author>johot</author><pubDate>Sat, 23 Jan 2010 11:33:03 GMT</pubDate><guid isPermaLink="false">New Post: Using some of your classes in my own mvvm codeplex project 20100123113303A</guid></item><item><title>New Post: UnitTests suddenly unavailable</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=79780</link><description>&lt;div style="line-height: normal;"&gt;&lt;blockquote style="border:solid .1em #ccc;font-style:italic;margin:.25em 1em 0 1em;padding:0 .25em 0 .25em"&gt;&lt;strong&gt;JoshSmithonWpf wrote:&lt;/strong&gt;&lt;br&gt;
&lt;p&gt;I have no idea how that could happen. &amp;nbsp;Sorry...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No problem. Maybe it has to do with the fact that I initially had problems to get the WPF MVVM Toolkit installed in the C# project chooser at all, until I deinstalled&lt;/p&gt;
&lt;p&gt;every installation of VS8,9 and 10 (the former being german versions).&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I'll watch the effect alongside. For the moment I can help myself when creating a new project, that I move the unittests manually to the target directory and&lt;/p&gt;
&lt;p&gt;tweak the references in the generated files. A bit ugly though, but I think one can live with it, once one has learnt to create an instance of a MVVM app.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Christoph&lt;/p&gt;&lt;/div&gt;</description><author>Krischu</author><pubDate>Wed, 06 Jan 2010 08:27:56 GMT</pubDate><guid isPermaLink="false">New Post: UnitTests suddenly unavailable 20100106082756A</guid></item><item><title>New Post: UnitTests suddenly unavailable</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=79780</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I have no idea how that could happen. &amp;nbsp;Sorry...&lt;/p&gt;&lt;/div&gt;</description><author>JoshSmithonWpf</author><pubDate>Tue, 05 Jan 2010 18:28:30 GMT</pubDate><guid isPermaLink="false">New Post: UnitTests suddenly unavailable 20100105062830P</guid></item><item><title>New Post: UnitTests suddenly unavailable</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=79780</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I built a new WPF Model-View Application (File-&amp;gt;New-&amp;gt;Project-&amp;gt;C#-&amp;gt;WPF Model-View Application). I'm aske dfor the name and whether&lt;/p&gt;
&lt;p&gt;I want to build a UnitTest etc. I say yes and the project is created. At no point I can specify, where it should be put in.&lt;/p&gt;
&lt;p&gt;When I then right-click on the solution explorer and click &amp;quot;Open Folder in Windows Explorer&amp;quot;, I see that it is built in&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;C:\Dokumente und Einstellungen\myusername\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\MVVM-myusername.Tests&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The project itself is also placed there (Temporary Projects).&lt;/p&gt;
&lt;p&gt;When I then save the project later, I can specify a path. The project itself gets copied there and disappears from&lt;/p&gt;
&lt;p&gt;the ..\Temporary Projects folder. But the unittests directory stays sitting there and doesn't get copied.&lt;/p&gt;
&lt;p&gt;So when I open the project next time from the MRU list in the startpage of VS9 I get this message that some parts (the unittests) have been moved and are not available.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;So I wonder why the unittests are not getting copied when I save the project.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Strange..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Christoph&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>Krischu</author><pubDate>Tue, 05 Jan 2010 17:35:44 GMT</pubDate><guid isPermaLink="false">New Post: UnitTests suddenly unavailable 20100105053544P</guid></item><item><title>New Post: Thoughts on my Messenger implementation</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=78779</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Very interesting! &amp;nbsp;Thanks for the food for thought. :)&lt;/p&gt;&lt;/div&gt;</description><author>JoshSmithonWpf</author><pubDate>Tue, 05 Jan 2010 16:32:28 GMT</pubDate><guid isPermaLink="false">New Post: Thoughts on my Messenger implementation 20100105043228P</guid></item><item><title>New Post: UnitTests suddenly unavailable</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=79780</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I cannot reproduce this issue. &amp;nbsp;Could it perhaps be that the project's file path has too many characters? &amp;nbsp;I've seen errors like that, where path has over 255 characters, which is considered invalid. &amp;nbsp;Try putting the solution at c:\ and see if it still happens.&lt;/p&gt;
&lt;p&gt;Josh&lt;/p&gt;&lt;/div&gt;</description><author>JoshSmithonWpf</author><pubDate>Tue, 05 Jan 2010 16:30:53 GMT</pubDate><guid isPermaLink="false">New Post: UnitTests suddenly unavailable 20100105043053P</guid></item><item><title>New Post: UnitTests suddenly unavailable</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=79780</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm using the MVVM Toolkit and it happened now more than twice to me that when I launch VS9&lt;/p&gt;
&lt;p&gt;on the solution file or start the project in VS9, a part of the project is claimed to be unavailable.&lt;/p&gt;
&lt;p&gt;Could it be that someone, some cleanup mechanism busts out the folder in which the&lt;/p&gt;
&lt;p&gt;UnitTests are located? That folder is c:\Dokumente und Einstellungen\Krischu\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\MVVM-Krischu.Tests\MVVM-Krischu.Tests.csproj&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;How can I recreate the missing files without having to regenerate the project from ground up?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;--&lt;/p&gt;
&lt;p&gt;Christoph&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>Krischu</author><pubDate>Tue, 05 Jan 2010 12:08:50 GMT</pubDate><guid isPermaLink="false">New Post: UnitTests suddenly unavailable 20100105120850P</guid></item><item><title>New Post: Is there a time-line for some kind of release ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=74954</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Thanks for the note, happy to hear you solve the issue (and also happy to hear it was not in my code ;)&lt;/p&gt;
&lt;p&gt;Cheers,&lt;/p&gt;
&lt;p&gt;Laurent&lt;/p&gt;&lt;/div&gt;</description><author>lbugnion</author><pubDate>Wed, 23 Dec 2009 19:49:32 GMT</pubDate><guid isPermaLink="false">New Post: Is there a time-line for some kind of release ? 20091223074932P</guid></item><item><title>New Post: Is there a time-line for some kind of release ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=74954</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Thanks for replying Laurent.&lt;/p&gt;
&lt;p&gt;&amp;nbsp; I seriously thought you will not get time to reply as&amp;nbsp;I saw your comment somewhere that you are writing books and busy with projects.&lt;/p&gt;
&lt;p&gt;I fully understand that if I want to use your toolkit, which is free, It's my problem to resolve the issues or simply not use and that you are not obligated to answer. So no complains and didn;t mean to heart/offend anyone. :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;For my problem, I looked around on the internet and understood that System.Interactivity.dll probably has some dependencies and may need some more (bland specific?) dlls.&lt;/p&gt;
&lt;p&gt;In my case (which is pure WPF&amp;nbsp;&amp;nbsp;;&amp;nbsp;i.e. &amp;nbsp;.Net 3.5 SP1&amp;nbsp;run-time with c# on vs2008/winXP ) the Sotryboard.SetTarget method does not exist.&amp;nbsp;My guess is if you have bland installed (I don't) may be you have some more dlls in your GAC already loaded and that's why it is probably working for you.&amp;nbsp;At this point,&amp;nbsp;I have no idea about silverlight or bland so I am not able to help my self.&lt;/p&gt;
&lt;p&gt;Regards,&lt;br&gt;Sendi&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>sendi_t34</author><pubDate>Wed, 23 Dec 2009 00:46:25 GMT</pubDate><guid isPermaLink="false">New Post: Is there a time-line for some kind of release ? 20091223124625A</guid></item><item><title>New Post: Is there a time-line for some kind of release ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=74954</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;@&lt;a id="ctl00_ctl00_MasterContent_Content_PostRepeater_ctl14_UserNameLink" style="text-decoration:underline;color:#3e62a6" href="http://www.codeplex.com/site/users/view/sendi_t34"&gt;sendi_t34&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am the developer of the MVVM Light Toolkit. I did receive an email from you one week ago regarding the sample in question. I am not sure what you did wrong, but the samples do work correctly.&lt;/p&gt;
&lt;p&gt;I would like to remind you that both Josh and I are maintaining and developing our frameworks on our free time, and that both of us are very busy professionals with a lot of obligations. The fact that I was not able to reply to your email right away does not mean that the MVVM Light toolkit is not supported. In fact, I post samples regularly&amp;nbsp;on my blog, and I do answer to a lot of emails regarding the toolkit's features (your email was just one of the many I get). If one or the other sample does not work properly (we are, after all human), it does not mean that the project is &amp;quot;dead in the water&amp;quot;. It just means that we have to sort our priorities. In the moment, I am very busy with work, and in addition I write a programming book. I am sure that you will understand that sometimes it is a little overwhelming, and that a small delay in answering emails can happen.&lt;/p&gt;
&lt;p&gt;I will investigate the error that you report, and check what is happening. In the mean time, I recommend that you install the latest version of my toolkit manually, as described here:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://galasoft.ch/mvvm/installing/manually/"&gt;http://galasoft.ch/mvvm/installing/manually/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Then, simply create a new MVVM Light project for WPF, and you should be able to get EventToCommand to work in no time.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I will get back to you for the sample issue.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Laurent&lt;/p&gt;&lt;/div&gt;</description><author>lbugnion</author><pubDate>Tue, 22 Dec 2009 21:31:19 GMT</pubDate><guid isPermaLink="false">New Post: Is there a time-line for some kind of release ? 20091222093119P</guid></item><item><title>New Post: Is there a time-line for some kind of release ?</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=74954</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hay Josh,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; I tried that MVVM Light Toolkit, but it does not work for WPF and it is not supported. currently it is dead in water. It is so much silverlight oriented and wpf part doesn't even compile/work.&lt;/p&gt;
&lt;p&gt;Apparently developer didn't even ran it once before declaring it is for both silverlight and WPF. haha... every one want to be a master and provide a global solution for everything.&lt;/p&gt;
&lt;p&gt;In this is case it is Alpha release (as specially EventToCommand feature)&amp;nbsp; so it is not supported!&lt;/p&gt;
&lt;p&gt;so I don't have any option unless I install silverlight/blend which I don't have license for.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I don't know if you can do much about this but just want to bring it to your attention that the WpfLightToolkit promised too much for WPF and did not deliver unfortunately !&lt;/p&gt;
&lt;p&gt;Funny thing is it says WPF toolkit and it&amp;nbsp; doesn't work for WPF and may be work for silverlight!&lt;/p&gt;
&lt;p&gt;May be you can point me to some other projects/links that has event to command for MVVM ? or should I forget about this and start coding code behind way ?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;&lt;/div&gt;</description><author>sendi_t34</author><pubDate>Tue, 22 Dec 2009 18:34:29 GMT</pubDate><guid isPermaLink="false">New Post: Is there a time-line for some kind of release ? 20091222063429P</guid></item><item><title>New Post: Thoughts on my Messenger implementation</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=78779</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Oh! Almost forgot...&lt;/p&gt;
&lt;p&gt;Another thing I do to make it easier to use the messenger is to create extension methods (bodies of all but one method omitted):&lt;/p&gt;
&lt;div style="color:black;background-color:white"&gt;
&lt;pre style="color:#000000;font-family:Consolas, 'Courier New', Courier, monospace;font-size:1em;margin:8px"&gt;&lt;span style="color:blue"&gt;    public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; MessengerExtensions
    {
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; MessageBoxResult ShowError(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; message);
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; MessageBoxResult ShowMessageBox(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; message, &lt;span style="color:blue"&gt;string&lt;/span&gt; caption, MessageBoxImage image, MessageBoxButton button);

        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;[] ShowOpenFileDialog(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; filter)
        {
            ShowOpenFileDialogMessage m = &lt;span style="color:blue"&gt;new&lt;/span&gt; ShowOpenFileDialogMessage(filter);
            messenger.Broadcast(m);
            &lt;span style="color:blue"&gt;return&lt;/span&gt; m.Result;
        }

        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;[] ShowOpenFileDialog(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; filter, &lt;span style="color:blue"&gt;bool&lt;/span&gt; multiSelect);
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; PrintDialog ShowPrintDialog(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger);
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; ShowSaveFileDialog(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; filter);
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;static&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; ShowSaveFileDialog(&lt;span style="color:blue"&gt;this&lt;/span&gt; MessengerService messenger, &lt;span style="color:blue"&gt;string&lt;/span&gt; filter, &lt;span style="color:blue"&gt;string&lt;/span&gt; defaultFileName);
    }&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;This makes, e.g. showing an error message box as simple as:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;    messenger.ShowError(&amp;quot;Error message...&amp;quot;)&lt;/pre&gt;
&lt;p&gt;Easier than WinForms! ;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>groky</author><pubDate>Mon, 21 Dec 2009 21:13:56 GMT</pubDate><guid isPermaLink="false">New Post: Thoughts on my Messenger implementation 20091221091356P</guid></item><item><title>New Post: Thoughts on my Messenger implementation</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=78779</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I have come up with an implementation of Messenger that might be interesting to you. I notice your messages are all strings, and the callback limited to a single parameter.&lt;/p&gt;
&lt;p&gt;Here's how mine looks:&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;&lt;span style="color:Blue"&gt;    public&lt;/span&gt; &lt;span style="color:Blue"&gt;class&lt;/span&gt; Messenger
    {
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Broadcast(&lt;span style="color:Blue"&gt;object&lt;/span&gt; message); &lt;span style="color:Green"&gt;// aka NotifyColleagues&lt;/span&gt;
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;void&lt;/span&gt; Subscribe(Action handler); &lt;span style="color:Green"&gt;// aka Register&lt;/span&gt;
    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Here, a message can be any object, and clients register with the message type. The callback accepts a single parameter of the type of the message.&lt;/p&gt;
&lt;p&gt;An example message class:&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;    &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;class&lt;/span&gt; ShowOpenFileDialogMessage
    {
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; ShowOpenFileDialogMessage(&lt;span style="color:Blue"&gt;string&lt;/span&gt; filter);
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; ShowOpenFileDialogMessage(&lt;span style="color:Blue"&gt;string&lt;/span&gt; filter, bool multiSelect);

        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;string&lt;/span&gt; Filter { &lt;span style="color:Blue"&gt;get&lt;/span&gt;; &lt;span style="color:Blue"&gt;private&lt;/span&gt; &lt;span style="color:Blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; bool MultiSelect { &lt;span style="color:Blue"&gt;get&lt;/span&gt;; &lt;span style="color:Blue"&gt;private&lt;/span&gt; &lt;span style="color:Blue"&gt;set&lt;/span&gt;; }
        &lt;span style="color:Blue"&gt;public&lt;/span&gt; &lt;span style="color:Blue"&gt;string&lt;/span&gt;[] Result { &lt;span style="color:Blue"&gt;get&lt;/span&gt;; &lt;span style="color:Blue"&gt;set&lt;/span&gt;; }
    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;It is subscribed to like this:&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;    messenger.Subscribe&amp;lt;ShowOpenFileDialogMessage&amp;gt;(ShowOpenFileDialog);
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;With an implementation something like this:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="color:Black;background-color:White"&gt;
&lt;pre&gt;        &lt;span style="color:Blue"&gt;void&lt;/span&gt; ShowOpenFileDialog(ShowOpenFileDialogMessage message)
        {
            System.Windows.Forms.OpenFileDialog dialog = &lt;span style="color:Blue"&gt;new&lt;/span&gt; System.Windows.Forms.OpenFileDialog();
            dialog.Filter = message.Filter;
            dialog.Multiselect = message.MultiSelect;

            &lt;span style="color:Blue"&gt;if&lt;/span&gt; (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                message.Result = dialog.FileNames;
            }
            &lt;span style="color:Blue"&gt;else&lt;/span&gt;
            {
                message.Result = &lt;span style="color:Blue"&gt;null&lt;/span&gt;;
            }
        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;As you can see, the message can also return a value through the message parameter.&lt;/p&gt;
&lt;p&gt;Thoughts?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</description><author>groky</author><pubDate>Mon, 21 Dec 2009 21:09:25 GMT</pubDate><guid isPermaLink="false">New Post: Thoughts on my Messenger implementation 20091221090925P</guid></item><item><title>New Post: Message, WeakReference &amp; Garbage Collection</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=78223</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;The solution I have used to this problem is to modify Messenger to include an optional&amp;nbsp;guard function alongside the action. During notification the action is then only called if the guard check passes.&lt;/p&gt;
&lt;p&gt;This solves the problem in the case of an expired View, because the guard can check whether the View is active and if the View is inactive the action is not invoked. This allows for an expired View to be garbage collected naturally.&lt;/p&gt;&lt;/div&gt;</description><author>ajkimball</author><pubDate>Thu, 17 Dec 2009 10:01:16 GMT</pubDate><guid isPermaLink="false">New Post: Message, WeakReference &amp; Garbage Collection 20091217100116A</guid></item><item><title>New Post: Message, WeakReference &amp; Garbage Collection</title><link>http://mvvmfoundation.codeplex.com/Thread/View.aspx?ThreadId=78223</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I'm having some problems using the Messenger. I have a View and ViewModel. When the View is created it registers for Message A. When the View Model receives a particular command a notification of Message A is sent by the View Model, and the View creates a new dialog.&lt;/p&gt;
&lt;p&gt;The problem comes when the View is reopened (after being closed down). When the View is reopened it once again registers for Message A. But&amp;nbsp;now when the View Model receives a particular command and a notification is sent by the View model, there are two actions. The new action is fine and is the desired one, but the old action (from the first time the View was created) is a problem because its target, the original View, is awaiting garbage collection and so invoking the action causes unwanted results.&lt;/p&gt;
&lt;p&gt;The check in Messenger to ascertain whether the action's target is dead does not help in this situation because the target&amp;nbsp;is awaiting garbage collection, but has yet to be garbage collected.&lt;/p&gt;
&lt;p&gt;Is there a way to overcome this issue short of (a) implementing Unregister on Messenger, or (b) limiting message-action mapping to one action with a given signature for each message?&lt;/p&gt;&lt;/div&gt;</description><author>ajkimball</author><pubDate>Tue, 15 Dec 2009 16:52:41 GMT</pubDate><guid isPermaLink="false">New Post: Message, WeakReference &amp; Garbage Collection 20091215045241P</guid></item></channel></rss>