title: WPF Bind to a Collection of objects, sorted by IDs stored in order in another Collection in C#
body: <p>For those of you that like puzzles: I had this problem recently and am sure there must be a nicer solution.</p>
  
  <p>Consider :</p>
  
  <ul>
  <li>an ObservableCollection of <strong>Foo</strong> objects called <em>foos</em>.</li>
  <li><strong>Foo</strong> contains a string ID field</li>
  <li>I have no control over <em>foos</em></li>
  <li><em>foos</em> will be changing</li>
  </ul>
  
  <p>Then:</p>
  
  <ul>
  <li>I have another collection called <em>sortLikeThis</em></li>
  <li><em>sortListThis</em> contains strings</li>
  <li>The strings are the IDs in the order in which the <em>foos</em> are to be shown</li>
  </ul>
  
  <p>Plus:</p>
  
  <ul>
  <li>There may be objects in <em>foos</em> with an ID that is not in <em>sortLikeThis</em>. These need to go at the end.</li>
  <li>Likewise, there may be strings in <em>sortLikeThis</em> that do not appear in <em>foos</em>.</li>
  </ul>
  
  <p>Is there a nice way to bind to and show in wpf the <strong>Foo</strong> objects in <em>foos</em> in the order defined by IDs in <em>sortLikeThis</em> ?</p>