WPF Injected Locator, DesignerProperties.IsInDesignTool missing

Dec 16, 2011 at 2:01 AM

Has anyone tried using the injected locator in a Simple-Mvvm WPF Application?

The Simple-Mvvm template code generated for the constructor in the view model injected locator doesn't compile. 

 

        public ViewModelInjectedLocator()
        {
            // Only inject service agents at runtime
            if (!DesignerProperties.IsInDesignTool)
            {
                // Use MEF to inject service agents
                CompositionHost.Initialize(new DeploymentCatalog());
                CompositionInitializer.SatisfyImports(this);

                // TODO: Verify creation of service agents
            }
        }

 

The following error is reported on the "IsInDesignTool" property:

Error 3 'System.ComponentModel.DesignerProperties' does not contain a definition for 'IsInDesignTool' C:\dev1\Mvvm2\App1\Locators\ViewModelInjectedLocator.cs 78 37 App1

 

System.ComponentModel.DesignerProperties doesn't have a "IsInDesignTool" property:

 

#region Assembly PresentationFramework.dll, v4.0.30319
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client\PresentationFramework.dll
#endregion

using System;
using System.Windows;

namespace System.ComponentModel
{
    public static class DesignerProperties
    {
        public static readonly DependencyProperty IsInDesignModeProperty;

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public static bool GetIsInDesignMode(DependencyObject element);

        public static void SetIsInDesignMode(DependencyObject element, bool value);
    }
}

 

 

Coordinator
Jan 6, 2012 at 1:01 PM

Yes, the code needs to be changed for WPF to use IsInDesignMode.