title: IntelliSense for Data Binding not working
body: <p>After a couple of hours trying to debug an issue with data-binding that was caused by a mistyped property in a <code>Binding</code> extension. Once I noticed the mistake, the realization that if IntelliSense was available I may have not made the mistake in the first place. As a Visual Studio user who is used to error/warnings when mistyping a name; perhaps I'm spoiled, but the lack of IntelliSense led to the error.</p>
  
  <p>I did some research and I found that <a href="http://blogs.msdn.com/b/visualstudio/archive/2013/08/09/xaml-editor-improvements-in-visual-studio-2013.aspx" rel="noreferrer">Intellisense for Data Binding is available is Visual Studio 2013</a> which I'm using (Ultimate edition). I tried creating a simple WPF app following the second example in the blog. Firstly, There appears to be an error in the second example in the blog that resulted compiler error. <a href="https://stackoverflow.com/questions/17484109/designinstance-not-working-in-vs2012">Prefixing the <code>Type=ViewModel:MainViewModel</code> attribute with <code>d:</code></a> fixed the compiler error, yet the properties of my View-Model class are still not showing in the Intellisense menu. My code is below and in <a href="https://github.com/DanStevens/StackOverflow/tree/master/IntelliSenseForDataBinding" rel="noreferrer">GitHub</a>.</p>
  
  <p>MainViewModel.cs:</p>
  
  <pre><code>using System.ComponentModel;
  using System.Runtime.CompilerServices;
  
  namespace IntelliSenseForDataBinding
  {
      public class MainViewModel : INotifyPropertyChanged
      {
          public MainViewModel()
          {
              Greeting = "Hello World";
              Answer = 42;
          }
  
          private string _Greeting;
          public string Greeting
          {
              get { return _Greeting; }
              set { _Greeting = value; OnPropertyChanged(); }
          }
  
          private int _Answer;
          public int Answer
          {
              get { return _Answer; }
              set { _Answer = value; OnPropertyChanged(); }
          }
          public event PropertyChangedEventHandler PropertyChanged;
  
          protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
          {
              PropertyChangedEventHandler handler = PropertyChanged;
              if (handler != null)
                  handler(this, new PropertyChangedEventArgs(propertyName));
          }
  
      }
  }
  </code></pre>
  
  <p>MainWindow.xaml:</p>
  
  <pre><code>&lt;Window x:Class="IntelliSenseForDataBinding.MainWindow"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
          xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
          mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="450"
          d:DataContext="{d:DesignInstance Type=MainViewModel, IsDesignTimeCreatable=True}"
          Title="MainWindow" Height="350" Width="525"&gt;
      &lt;Grid&gt;
  
      &lt;/Grid&gt;
  &lt;/Window&gt;
  </code></pre>
  
  <p>MainWindows.xaml.cs:</p>
  
  <pre><code>using System.Windows;
  
  namespace IntelliSenseForDataBinding
  {
      /// &lt;summary&gt;
      /// Interaction logic for MainWindow.xaml
      /// &lt;/summary&gt;
      public partial class MainWindow : Window
      {
          public MainWindow()
          {
              DataContext = new MainViewModel();
              InitializeComponent();
          }
      }
  }
  </code></pre>
  
  <p>Here's the evidence that is not working:</p>
  
  <p><img src="https://i.stack.imgur.com/1UAM4.png" alt="enter image description here"></p>
  
  <p>I would expect to see an item for the 'Greeting' property in the IntelliSense menu. Any suggestions on why it's not there? I've also tried resetting the Visual Studio settings to default, just in case.</p>
  
  <p>In addition, any suggestions on additional methods for preventing or detected mistyped property names in Binding attributes?</p>