private void outports_collectionChanged(object sender, NotifyCollectionChangedEventArgs e) { //The visual height of the node is bound to preferred height. //PreferredHeight = Math.Max(inPorts.Count * 20 + 10, outPorts.Count * 20 + 10); //spacing for inputs + title space + bottom space if (e.Action == NotifyCollectionChangedAction.Add) { //create a new port view model foreach (var item in e.NewItems) { PortViewModel outportViewModel = SubscribePortEvents(item as PortModel); OutPorts.Add(outportViewModel); } } else if (e.Action == NotifyCollectionChangedAction.Remove) { //remove the port view model whose model item is the //one passed in foreach (var item in e.OldItems) { PortViewModel portToRemove = UnSubscribePortEvents(OutPorts.ToList().First(x => x.PortModel == item)); OutPorts.Remove(portToRemove); } } }
protected override void RefreshTypeDefinitionPorts() { OutPorts.ToList().ForEach(portModel => OutPorts.Remove(portModel)); if (TypeDefinition != null) { foreach (var property in TypeDefinition.Properties) { OutPorts.Add(new PortModel(PortType.Output, this, new PortData(property.Key, property.Value.ToString()))); } } OnNodeModified(true); }
void outports_collectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { //The visual height of the node is bound to preferred height. //PreferredHeight = Math.Max(inPorts.Count * 20 + 10, outPorts.Count * 20 + 10); //spacing for inputs + title space + bottom space if (e.Action == NotifyCollectionChangedAction.Add) { //create a new port view model foreach (var item in e.NewItems) { OutPorts.Add(new PortViewModel(item as PortModel, nodeLogic)); } } else if (e.Action == NotifyCollectionChangedAction.Remove) { //remove the port view model whose model item is the //one passed in foreach (var item in e.OldItems) { OutPorts.Remove(OutPorts.ToList().First(x => x.PortModel == item)); } } }