public PuzzleLayout() { _puzzleNodes = new PuzzleNodes(); _puzzleObjects = new PuzzleObjects(); NodeRemoved += node => RemoveObject(node.Position); ConnectionAdded += _ => LayoutChanged.CallEvent(); ConnectionRemoved += _ => LayoutChanged.CallEvent(); ObjectAdded += (_, __) => LayoutChanged.CallEvent(); ObjectRemoved += _ => LayoutChanged.CallEvent(); PropertySet += (_, __, ___) => LayoutChanged.CallEvent(); _puzzleObjects.PropertyRemoved += (_, __) => LayoutChanged.CallEvent(); }