private void RemoveNode(GraphNode node)
{
RandomVariable variable = node.Tag as RandomVariable;
variable.UserData = null;
xRoot.Children.Remove(node);
_nodes.Remove(node);
var edgesWithNode = _edges.Where(e => e.To == node || e.From == node);
foreach (var edge in edgesWithNode)
{
if (edge.To.Parent == null
&& edge.From.Parent == null)
{
xRoot.Children.Remove(edge);
edge.To = null;
edge.From = null;
}
}
}