title: No more displayed image on ListBox everytime I select an item
body: <p><strong>PROBLEM:</strong></p>
  
  <p>I got the <a href="https://stackoverflow.com/questions/8561678/listbox-display-selected-items-image-in-another-listbox-selection-mode-multip">answer</a> when doing some binding from ListBoxSource to ListBoxDisplay <strong>BUT</strong> weird thing happened:</p>
  
  <p>The selecting and deselecting of items are working fine and displays exactly the selected items on the other ListBox named "ListBoxDetails <strong>BUT</strong> everytime I select an item the image is gone but selection highlights remain but has no more image in it. (You can still deselect it though even if no more image because the screenspace is still there)</p>
  
  <p><strong>NOTE:</strong> I have no other control inside the ListBoxSource (SelectionMode=Multiple) ONLY Image </p>
  
  <p><strong>CODE XAML:</strong></p>
  
  <pre><code>    &lt;Window.Resources&gt;
      &lt;DataTemplate x:Key="ItemTemplate"&gt;
          &lt;WrapPanel Height="149" Orientation="Horizontal" Width="193"&gt;
              &lt;Image HorizontalAlignment="Left" Height="128" Width="180" Margin="0"/&gt;
          &lt;/WrapPanel&gt;
      &lt;/DataTemplate&gt;
      &lt;ItemsPanelTemplate x:Key="ItemsPanelTemplate1"&gt;
          &lt;StackPanel Orientation="Horizontal"/&gt;
      &lt;/ItemsPanelTemplate&gt;
      &lt;ItemsPanelTemplate x:Key="ItemsPanelTemplate2"&gt;
          &lt;UniformGrid x:Name="UniformGridImageList"/&gt;
      &lt;/ItemsPanelTemplate&gt;
  &lt;/Window.Resources&gt;
  &lt;Grid x:Name="LayoutRoot"&gt;
      &lt;ListBox x:Name="ListBoxSource" Width="450" Margin="9,3,442,178"  ItemsPanel="{DynamicResource ItemsPanelTemplate2}" SelectionMode="Multiple" d:LayoutOverrides="GridBox" HorizontalAlignment="Left" /&gt;     
      &lt;ListBox Name="ListBoxDisplay" Height="659" HorizontalAlignment="Right" Margin="460,5,0,0"  VerticalAlignment="Top" Width="382" ItemsSource="{Binding ElementName=ListBoxSource, Path=SelectedItems}" /&gt;
      &lt;Button x:Name="buttonLoadImages" Content="Button" HorizontalAlignment="Left" Height="51" Margin="33,0,0,70" VerticalAlignment="Bottom" Width="183" Style="{DynamicResource ButtonStyle1}" Click="buttonLoadImages_Click"/&gt;
      &lt;Button Content="Clear" Height="55" HorizontalAlignment="Right" Margin="0,717,442,0" Name="buttonClearListBox" VerticalAlignment="Top" Width="177" Click="button1_Click" /&gt;
  
  &lt;/Grid&gt;
  </code></pre>
  
  <p><strong>CODE C#:</strong></p>
  
  <p>above declaration:</p>
  
  <pre><code> private List&lt;Image&gt; _imageList = new List&lt;Image&gt;();
  </code></pre>
  
  <p>.
  .
  .</p>
  
  <pre><code>        private void buttonLoadImages_Click(object sender, System.Windows.RoutedEventArgs e)
      {
  
          this._imageList = GetImageList(@"C:\Users\Public\Pictures\Sample Pictures");
  
  
          foreach (Image curImage in this._imageList)
          {
  
              ListBoxSource.Items.Add(curImage);
  
          }
  
      }
  
      #region GetImageList Method
  
      private List&lt;Image&gt; GetImageList(string strPath)
      {
          List&lt;Image&gt; imageList = new List&lt;Image&gt;();
          string strFilePath = "";
  
          if (Directory.Exists(strPath) == false)
          {
              MessageBox.Show(string.Format("{0} path could not be found.", strPath));
              return imageList;
          }
  
          try
          {
  
  
              DirectoryInfo dirInfo = new DirectoryInfo(strPath);
              FileInfo[] files = dirInfo.GetFiles("*.jpg",SearchOption.AllDirectories);
  
  
              foreach (FileInfo curFile in files)
              {
  
  
                  strFilePath = curFile.FullName;
  
                  Image curImage = new Image();
                  BitmapImage bmpImage = new BitmapImage();
                  bmpImage.BeginInit();
                  bmpImage.UriSource = new Uri(curFile.FullName, UriKind.Absolute);
                  bmpImage.EndInit();
  
                  curImage.Height = 140;
                  curImage.Stretch = Stretch.Fill;
  
                  curImage.Source = bmpImage;
                  curImage.Margin = new Thickness(10);
  
                  imageList.Add(curImage);
              }
  
              if (imageList.Count == 0)
                  MessageBox.Show(string.Format("No image files could be found in {0}", strPath));
          }
          catch (Exception ex)
          {
              MessageBox.Show(string.Format("{0}-{1}", ex.Message, strFilePath));
          }
  
          return imageList;
      }
  
      private void button1_Click(object sender, RoutedEventArgs e)
      {
          this.listBoxSource.Items.Clear();
      }
  </code></pre>