void OnModelComparisonResultsUpdated(IScenarioComparison comparison) { Dispatcher.Invoke(delegate { // Update graph inspector with "relevant" nodes. if (comparison != null) { // Gather evidence variable names. var evidenceVariables = comparison.Scenario1.Evidence.Select(x => x.Key).Union(comparison.Scenario2.Evidence.Select(x => x.Key)); // Show only interesting variables. xGraphInspector.SetInterestVariables( comparison .SignificantVariables .Select(kvp => kvp.Item1) .Union(evidenceVariables) ); // Update UI state for comparison metric. xEvidenceInspector.SetComparisonMetric(comparison.ComparisonMetric); xEvidenceInspector.SetComparisonRelevantVariables(comparison, this.Model.BayesianNetworkVariableAbbreviations); } else { xGraphInspector.SetInterestVariables(null); // Update UI state for comparison metric. xEvidenceInspector.SetComparisonMetric(default(ComparisonMetric)); xEvidenceInspector.SetComparisonRelevantVariables(null, null); } }); }
internal void SetComparisonRelevantVariables(IScenarioComparison comparison, IDictionary<string, string> abbreviations) { this.xRelevantVariablesList.Children.Clear(); if (comparison == null) { return; } foreach (var v in comparison.SignificantVariables) { this.xRelevantVariablesList.Children.Add( new Label() { Content = string.Format("{0} ({1}): {2}", v.Item1.Truncate(20), abbreviations[v.Item1], v.Item2) } ); } }
internal void SetComparisonRelevantVariables(IScenarioComparison comparison, IDictionary <string, string> abbreviations) { this.xRelevantVariablesList.Children.Clear(); if (comparison == null) { return; } foreach (var v in comparison.SignificantVariables) { this.xRelevantVariablesList.Children.Add( new Label() { Content = string.Format("{0} ({1}): {2}", v.Item1.Truncate(20), abbreviations[v.Item1], v.Item2) } ); } }