public async void CreateEdge() { if ((this.NewEdgeStart == null) || (this.NewEdgeEnd == null)) { return; } if (this.NewEdgeStart == this.NewEdgeEnd) { return; } if (this.NewEdgeEnd is FaultTreeTerminalNode && this.NewEdgeStart is FaultTreeTerminalNode) { string rateString = await MessageDialogs.ShowRateDialogAsync(); double rate; if (double.TryParse(rateString, out rate) && rate >= 0) { this.FaultTree.MarkovChain[(FaultTreeTerminalNode)this.NewEdgeStart, (FaultTreeTerminalNode)this.NewEdgeEnd] = rate; } } else { this.NewEdgeStart.Childs.Add(this.NewEdgeEnd); } this.RaisePropertyChanged("FaultTree"); }