public void Dispose() { foreach (var fd in Fixtures.Select(item => item as FixtureData)) { fd.PropertyChanged -= fd_PropertyChanged; } foreach (var f in Fixtures.Select(fd => fd as FixtureData)) { f.Dispose(); } foreach (var c in Categories.Select(cd => cd as CategoryData)) { c.Dispose(); } }