title: Can't create Prism shell
body: <p>I get the following exception when I try to create the Prism shell:</p>
  
  <blockquote>
    <p>An exception of type
    'Microsoft.Practices.ServiceLocation.ActivationException' occurred in
    Microsoft.Practices.ServiceLocation.dll but was not handled in user
    code</p>
    
    <p>Additional information: Activation error occurred while trying to get
    instance of type MainWindowViewModel, key ""</p>
  </blockquote>
  
  <p>This is my Bootstrapper class:</p>
  
  <pre><code> public class Bootstrapper : UnityBootstrapper 
      {
          protected override DependencyObject CreateShell()
          {
              return Container.TryResolve&lt;MainWindow&gt;();
  
          }
  
          protected override void InitializeShell()
          {
              Application.Current.MainWindow.Show();
          }
      }
  </code></pre>
  
  <p>App class:</p>
  
  <pre><code> public partial class App : Application
      {
          protected override void OnStartup(StartupEventArgs e)
          {
              base.OnStartup(e);
  
              Bootstrapper bs = new Bootstrapper(); 
              bs.Run(); 
  
              bs.Container.RegisterType&lt;ICustomer, Customer&gt;();
  
          }
  
      }
  </code></pre>
  
  <p>and App.xaml:</p>
  
  <pre><code>&lt;Application x:Class="MVVMPractice2.App"
               xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
               xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"&gt;
      &lt;Application.Resources&gt;
  
      &lt;/Application.Resources&gt;
  
  &lt;/Application&gt;
  </code></pre>
  
  <p>VIewModel class:</p>
  
  <pre><code>public class MainWindowViewModel : BindableBase
      {
          //instantiate the model
          public ICustomer customer;
  
          //property for button click command
          public DelegateCommand UpdateCommand { get; set; }
  
  
          //constructor to instantiate the buttons click command
          public MainWindowViewModel(ICustomer customer)
          {
              this.customer = customer;
  
  
              UpdateCommand = new DelegateCommand(() =&gt; {customer.CalculateTax();OnPropertyChanged(() =&gt; TaxAmount);}, customer.IsValid);
  
          }
  
  
          //this property maps customer name from model to the view
          public string TxtCustomerName
          {
              get { return customer.CustomerName; }
              set { customer.CustomerName = value; }
          }
  
          //this property maps amount from model to the view
          public string TxtAmount
          {
              get { return Convert.ToString(customer.Amount); }
              set { customer.Amount = Convert.ToDouble(value); }
          }
  
  
          //this property maps and transforms color from model to the view
          public string LblAmountColor
          {
              get
              {
                  if (customer.Amount &gt; 2000)
                  {
                      return "Blue";
                  }
                  else if (customer.Amount &gt; 1500)
                  {
                      return "Red";
                  }
                  return "Yellow";
              }
          }
  
          //this property maps and transforms married from model to the view
          public bool IsMarried
          {
              get
              {
                  if (customer.Married == "Married")
                  {
                      return true;
                  }
  
                  else if (customer.Married == "UnMarried")
                  {
                      return false;
                  }
  
                  return false;
  
              }
  
              set 
              {
                  if (value)
                  {
                      customer.Married = "Married";
                  }
  
                  else
                  {
                      customer.Married = "UnMarried";
                  }
              }
  
  
  
          }
  
          //this property maps tax from model to the view
          public string TaxAmount
          {
              get { return Convert.ToString(customer.Tax); }
  
          }
  
      }
  }
  </code></pre>
  
  <p>View XAML:</p>
  
  <pre><code>&lt;Window x:Class="MVVMPractice2.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:prism="http://prismlibrary.com/" 
          prism:ViewModelLocator.AutoWireViewModel="True" 
          Title="MainWindow" Height="350" Width="525"&gt;  &lt;!--PRISM POWER--&gt;
      &lt;Grid&gt;
          &lt;Label Content="Customer Name" HorizontalAlignment="Left" Margin="0,0,0,292.8"&gt;&lt;/Label&gt;
          &lt;Label Name="lblName"  HorizontalAlignment="Left" Margin="108,0,0,292.8" Width="37" Content="{Binding TxtCustomerName}"&gt;&lt;/Label&gt;
  
          &lt;Label Content="Sales Amount" HorizontalAlignment="Left" Margin="0,28,0,264.8"&gt;&lt;/Label&gt;
          &lt;TextBox Name="lblAmount"  HorizontalAlignment="Left" Margin="101,28,0,264.8" Width="44" Text="{Binding TxtAmount}"&gt;&lt;/TextBox&gt;
  
          &lt;Label Content="Buying Habits" HorizontalAlignment="Left" Margin="0,56,0,236.8"&gt;&lt;/Label&gt;
          &lt;Label Name="lblBuyingHabits" HorizontalAlignment="Left" Margin="108,56,0,236.8" Width="52" Background="{Binding LblAmountColor}"&gt;&lt;/Label&gt;
  
          &lt;Label Content="Married" HorizontalAlignment="Left" Margin="0,84,0,208.8" Width="62"&gt;&lt;/Label&gt;
          &lt;CheckBox Name="chkMarried" HorizontalAlignment="Left" Margin="102,84,0,208.8" IsChecked="{Binding IsMarried}"&gt;&lt;/CheckBox&gt;
  
          &lt;Label Content="Tax" HorizontalAlignment="Left" Margin="0,112,0,180.8"&gt;&lt;/Label&gt;
          &lt;TextBlock Name="lblTax" HorizontalAlignment="Left" Margin="108,117,0,175.8" Width="37" Text="{Binding TaxAmount}"&gt;&lt;/TextBlock&gt;
  
          &lt;Button Name="btnTax" Content="Calculate Tax" Margin="118,158,287.4,123.8" Command="{Binding UpdateCommand}" &gt;&lt;/Button&gt;
  
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>