title: Custom ObservableCollection with Selected item
body: <p>I am trying to implement custom ObservableCollection Which will have current (selected) item property which can be directly bound from XAML This is sample code I got so far Could someone point me to the right direction? the idea here is to set listviews' selected item property directly to its itemsources' Currentitem and provide Action which will take argument as current item. this action will be set from viewmodel.</p>
  
  <pre><code>public class ItemAwareObservableCollection&lt;T&gt; : ObservableCollection&lt;T&gt;
  {
      private readonly Action&lt;T&gt; _selectionCallback;
      private T _currentItem;
  
      public T CurrentItem
      {
          get { return _currentItem; }
          set
          {
              if(_currentItem.Equals(value))
              _currentItem = value;
              OnPropertyChanged(new PropertyChangedEventArgs("CurrentItem"));
              _selectionCallback(value);
          }
      }
  
      public ItemAwareObservableCollection(Action&lt;T&gt; selectionCallback)
      {
          _selectionCallback = selectionCallback;
      }
  
      public ItemAwareObservableCollection(Action&lt;T&gt; selectionCallback, IEnumerable&lt;T&gt; collection)
          : base(collection) { _selectionCallback = selectionCallback; }
  
      public ItemAwareObservableCollection(Action&lt;T&gt; selecytionCallback, List&lt;T&gt; list)
          : base(list) { _selectionCallback = selecytionCallback; }
  }
  </code></pre>
  
  <p>and this is sample usage from viewmodel</p>
  
  <pre><code>get { return new ItemAwareObservableCollection&lt;Companies&gt;(onSelecttionchange, Resolve&lt;ICompanyService&gt;().Companies); }
  </code></pre>
  
  <p>inside XAML View I would like to bind this collection to the ItemSource of Llistview (this works perfectly), but I would like to bind its selecteditem property to CurrentItem of this collectiion </p>