aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.DB/ViewModels/FiberShapesViewVM.cs
blob: cc2754cf2c8fe916239808cc309f389e44eb78d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.MachineStudio.Common.Notifications;

namespace Tango.MachineStudio.DB.ViewModels
{
    public class FiberShapesViewVM : DbTableViewModel<FiberShape>
    {
        public FiberShapesViewVM(INotificationProvider notification) : base(notification)
        {
        }
    }
}
class="w"> public class MergedCollection<T, TCollection> : ObservableCollection<T> where TCollection : INotifyCollectionChanged, IList<T> { TCollection a; TCollection b; /// <summary> Create a wrapper containing elements of 'a' and then 'b' </summary> [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly")] public MergedCollection(TCollection a, TCollection b) { this.a = a; this.b = b; this.a.CollectionChanged += SourceCollectionAChanged; this.b.CollectionChanged += SourceCollectionBChanged; Reset(); } void Reset() { this.Clear(); foreach(T item in a) this.Add(item); foreach(T item in b) this.Add(item); } void SourceCollectionAChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(0, e); } void SourceCollectionBChanged(object sender, NotifyCollectionChangedEventArgs e) { SourceCollectionChanged(a.Count, e); } void SourceCollectionChanged(int collectionStart, NotifyCollectionChangedEventArgs e) { switch(e.Action) { case NotifyCollectionChangedAction.Add: for (int i = 0; i < e.NewItems.Count; i++) { this.InsertItem(collectionStart + e.NewStartingIndex + i, (T)e.NewItems[i]); } break; case NotifyCollectionChangedAction.Remove: for (int i = 0; i < e.OldItems.Count; i++) { this.RemoveAt(collectionStart + e.OldStartingIndex); } break; case NotifyCollectionChangedAction.Reset: Reset(); break; default: throw new NotSupportedException(e.Action.ToString()); } } } }