aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/DataStore/Tango.DataStore.Web/ExtensionMethods.cs
blob: a0959ae273bb1cd778235751876da46ff0c12b21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Tango.DataStore.Web
{
    public class ExtensionMethods
    {
    }
}
n> using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.SharedUI.Components { public class SelectedObjectCollection<T> : ObservableCollection<SelectedObject<T>> { public event EventHandler SelectionChanged; public ObservableCollection<T> Source { get; set; } public ObservableCollection<T> SynchedSource { get; set; } public SelectedObjectCollection(ObservableCollection<T> source, ObservableCollection<T> synchedSource) { SynchedSource = synchedSource; Source = source; foreach (var item in source) { var selectedItem = new SelectedObject<T>(item, synchedSource.Contains(item)); this.Add(selectedItem); selectedItem.IsSelectedChanged += SelectedItem_IsSelectedChanged; } } private void SelectedItem_IsSelectedChanged(object sender, EventArgs e) { SelectedObject<T> item = sender as SelectedObject<T>; if (item.IsSelected) { if (!SynchedSource.Contains(item.Data)) { SynchedSource.Add(item.Data); } } else { SynchedSource.Remove(item.Data); } SelectionChanged?.Invoke(this, new EventArgs()); } } }