public VisualScriptBlockViewModel(VisualScriptMethodEditorViewModel method, Block block) : base(method.SafeArgument(nameof(method)).ServiceProvider) { this.Method = method; this.block = block; this.blockNode = method.Editor.Session.AssetNodeContainer.GetOrCreateNode(block); var propertyGraph = method.Editor.Session.GraphContainer.TryGetGraph(method.Editor.Asset.Id); // If anything changes in the block, trigger a PropertyChanged on Title to force it to refresh graphNodeListener = new AssetGraphNodeChangeListener(blockNode, propertyGraph.Definition); graphNodeListener.Initialize(); graphNodeListener.ValueChanging += GraphNodeListener_Changing; graphNodeListener.ValueChanged += GraphNodeListener_Changed; }