void OnBayesianNetworkStructureChanged(object sender, BayesianNetwork args)
{
Dispatcher.Invoke(delegate
{
// If structure changed, random variable instances were shed.
// Find the latest instances.
foreach (GraphNode node in _nodes)
{
RandomVariable oldVariable = (RandomVariable)node.Tag;
if (_network.HasVariable(oldVariable.Name))
{
RandomVariable newVariable = _network.GetVariable(oldVariable.Name);
node.Tag = newVariable;
}
}
// Update edges.
UpdateEdges();
});
}