4 using System.Collections;
 
    5 using System.Collections.Generic;
 
    6 using System.Collections.Specialized;
 
    7 using System.ComponentModel;
 
    9 namespace SiliconStudio.Presentation.Collections
 
   21         private readonly 
object syncRoot = 
new object();
 
   30             list.PropertyChanged += ListPropertyChanged;
 
   31             list.CollectionChanged += ListCollectionChanged;
 
   35         public object this[
int index] { 
get { 
return list[index]; } set { list[index] = (T)value; } }
 
   38         T 
IList<T>.this[
int index] { 
get { 
return list[index]; } set { list[index] = value; } }
 
   41         public bool IsReadOnly { 
get { 
return list.IsReadOnly; } }
 
   44         public bool IsFixedSize { 
get { 
return false; } }
 
   47         public int Count { 
get { 
return list.Count; } }
 
   50         public object SyncRoot { 
get { 
return syncRoot; } }
 
   53         public bool IsSynchronized { 
get { 
return false; } }
 
   64             return list.GetEnumerator();
 
   70             return list.GetEnumerator();
 
   74         public void CopyTo(Array array, 
int index)
 
   76             list.CopyTo((T[])array, index);
 
   80         public void CopyTo(T[] array, 
int arrayIndex)
 
   82             list.CopyTo(array, arrayIndex);
 
   86         public int Add(
object value)
 
   89             return list.Count - 1;
 
   93         public void Add(T item)
 
  101             return list.Contains((T)value);
 
  107             return list.Contains(item);
 
  119             return list.IndexOf((T)value);
 
  125             return list.IndexOf(item);
 
  129         public void Insert(
int index, 
object value)
 
  131             list.Insert(index, (T)value);
 
  137             list.Insert(index, item);
 
  143             list.Remove((T)value);
 
  149             return list.Remove(item);
 
  155             list.RemoveAt(index);
 
  161             return string.Format(
"{{NonGenericObservableListWrapper}} Count = {0}", Count);
 
  164         private void ListCollectionChanged(
object sender, NotifyCollectionChangedEventArgs e)
 
  166             var handler = CollectionChanged;
 
  175             var handler = PropertyChanged;
 
NonGenericObservableListWrapper(ObservableList< T > list)
Initializes a new instance of the NonGenericObservableListWrapper{T} class. 
void CopyTo(T[] array, int arrayIndex)
PropertyChangedEventHandler PropertyChanged
int IndexOf(object value)
void CopyTo(Array array, int index)
IEnumerator GetEnumerator()
void Insert(int index, object value)
NotifyCollectionChangedEventHandler CollectionChanged
bool Contains(object value)
void Insert(int index, T item)
void Remove(object value)
override string ToString()