public void SetIsChanged(Line line)
 {
     if (!IsChangeMonitored)
     {
         return;
     }
     // Log.Warn($"Line modified {line}");
     DataModified?.Invoke(this, EventArgs.Empty);
 }
        public void SetIsChanged(Node node)
        {
            if (!IsChangeMonitored)
            {
                return;
            }

            // Log.Warn($"Node modified {node} and {node.Parent}");
            node.IsModified = true;
            node.Parent.HasModifiedChild = true;
            DataModified?.Invoke(this, EventArgs.Empty);
        }
        public void RemoveAll()
        {
            ItemsCanvas rootCanvas = Root.ItemsCanvas;

            nodes.Clear();

            AddRoot();
            Root.ItemsCanvas = rootCanvas;

            if (IsChangeMonitored)
            {
                DataModified?.Invoke(this, EventArgs.Empty);
            }
        }