public void BindOneWay(BindingNode nextNode) { if (!LeftNodes.Contains(nextNode)) { LeftNodes.Add(nextNode); } nextNode.OneWay = true; }
public void RemoveRightBindings(BindingNode node) { bool removed = LeftNodes.Remove(node); if (LeftNodes.Count == 0) { RemoveNode(); } }
public void RemoveLeftBindings(BindingNode node) { bool removed = RightNodes.Remove(node); if (RightNodes.Count == 0 && (removed || OneWay)) { RemoveNode(); } }
public void Bind(BindingNode nextNode) { if (!RightNodes.Contains(nextNode)) { RightNodes.Add(nextNode); } if (!nextNode.LeftNodes.Contains(this)) { nextNode.LeftNodes.Add(this); } }