title: Binding ListView ItemTemplate to Key and Value of Dictionary<string,string>
body: <p>I have a <code>Dictionary&lt;string,string&gt;</code> that contains some data I want to display in a <code>ListView</code>. The <code>ListView</code> definitely "sees" the right number of items (because I see the appropriate number of colons from the second <code>TextBlock</code>) but it doesn't display either the <code>Key</code> or the <code>Value</code> binding. </p>
  
  <p>Do I need a <code>Converter</code> or something? </p>
  
  <p>Do I need to change and use an <code>ObservableCollection&lt;KeyValuePair&lt;string,string&gt;&gt;</code> instead?</p>
  
  <pre><code>&lt;ListView Grid.Row="1" IsItemClickEnabled="False" 
            SelectionMode="None" IsHitTestVisible="False"
            IsSwipeEnabled="False"
            ItemsSource="{Binding SymbolInfoText}"&gt;
      &lt;ListView.ItemTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;StackPanel Orientation="Horizontal"&gt;
                  &lt;TextBlock Text="{Binding Key}"/&gt;
                  &lt;TextBlock Text=": "/&gt;
                  &lt;TextBlock Text="{Binding Value}"/&gt;
              &lt;/StackPanel&gt;
          &lt;/DataTemplate&gt;
      &lt;/ListView.ItemTemplate&gt;
  &lt;/ListView&gt;
  
  public Dictionary&lt;string, string&gt; SymbolInfoText
  {
      get
      {
          if (selectedItem == null)
          {
              return new Dictionary&lt;string, string&gt; { { "Error", "No Item Selected" } };
          }
          return selectedItem.GenerateObjectProperties(CurrentLocation, LocalMapManager.Map.Heading);
      }
  }
  </code></pre>