コード例 #1
0
 /// <summary>
 /// Keep underlying model collection synchronized with wrapper-collection.
 /// Note: wrapper-collection performs change-notification and change-tracking.
 /// </summary>
 /// <typeparam name="TWrapper">Wrapper class</typeparam>
 /// <typeparam name="TModel">Underlying class</typeparam>
 /// <param name="wrapperCollection">ChangeTrackingCollection</param>
 /// <param name="modelCollection">Underlying generic collection</param>
 protected void RegisterCollection <TWrapper, TModel>(
     ChangeTrackingCollection <TWrapper> wrapperCollection,
     List <TModel> modelCollection) where TWrapper : ModelWrapper <TModel>
 {
     // Synchronize underlying model collection with wrapperCollection
     wrapperCollection.CollectionChanged += (s, e) =>
     {
         modelCollection.Clear();
         modelCollection.AddRange(wrapperCollection.Select(w => w.Model));
     };
     RegisterTrackingObject(wrapperCollection);
 }