using System.Collections.ObjectModel;
namespace TestObservableCollection
{
public class WorkSpace
{
public int ID { set; get; }
public string Name { set; get; }
public WorkSpace(int id, string name)
{
ID = id;
Name = name;
}
}
public class WorkSpaces : ObservableCollection<WorkSpace>
{
public new void Add(WorkSpace workspace)
{
base.Add(workspace);
}
public new void Remove(WorkSpace workspace)
{
base.Remove(workspace);
}
}
}
Sample test in a Form:
using TestObservableCollection;
private void TestObsCollection()
{
WorkSpaces ws = new WorkSpaces();
ws.CollectionChanged += ws_CollectionChanged;
WorkSpace wsp = new WorkSpace(id: 100, name: "test");
ws.Add(wsp);
ws.Remove(wsp);
}
private void ws_CollectionChanged(object sender,
System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
WorkSpace ws;
switch (e.Action.ToString())
{
case "Add":
ws = e.NewItems[0] as WorkSpace;
Console.WriteLine("Action: {0} ID: {1} Name: {2}", e.Action, ws.ID, ws.Name);
break;
case "Remove":
ws = e.OldItems[0] as WorkSpace;
Console.WriteLine("Action: {0} ID: {1} Name: {2}", e.Action, ws.ID, ws.Name);
break;
}
}
Console output from test:
Action: Add ID: 100 Name: test
Action: Remove ID: 100 Name: test