//------------------------------------------------------------------------------- #region displayWeaponSynthesisDynamically Expand時にデータを追加するようなノードを追加 //------------------------------------------------------------------------------- // private void displayWeaponSynthesisDynamically(TreeNode parent_node, SynthesisWeapons[] synthesisweapons) { var nodes = synthesisweapons.OrderBy(wep => wep.cost) .Select((sw, i) => { var tn = new TreeNode(string.Format("case{0} 【{1}】 {2} {3}", i + 1, Util.CostToString(sw.cost, "N0"), Util.ProbabilityToString(sw.probabilities.Aggregate(1.0f, (f1, f2) => f1 * f2)), sw.probabilities.Select(Util.ProbabilityToString).ToArray().AllToString('[', ']'))); List<TreeNode> nodeList = new List<TreeNode>(); TreeNode node0 = new TreeNode(string.Format("{0} 【{1}】", sw.info0.Weapon.ToString(), Util.CostToString(sw.info0.Cost, "N0"))); node0.Tag = new NodeInfo() { synthesisWeapons = sw.info0.SynthesisInfo }; if (sw.info0.SynthesisInfo != null) { node0.Nodes.Add(""); } // Expandできるようにダミーノード追加 nodeList.Add(node0); TreeNode node1 = new TreeNode(string.Format("{0} 【{1}】", sw.info1.Weapon.ToString(), Util.CostToString(sw.info1.Cost, "N0"))); node1.Tag = new NodeInfo() { synthesisWeapons = sw.info1.SynthesisInfo }; if (sw.info1.SynthesisInfo != null) { node1.Nodes.Add(""); } // Expandできるようにダミーノード追加 nodeList.Add(node1); if (sw.info2 != null) { TreeNode node2 = new TreeNode(string.Format("{0} 【{1}】", sw.info2.Weapon.ToString(), Util.CostToString(sw.info2.Cost, "N0"))); node2.Tag = new NodeInfo() { synthesisWeapons = sw.info2.SynthesisInfo }; if (sw.info2.SynthesisInfo != null) { node2.Nodes.Add(""); } // Expandできるようにダミーノード追加 nodeList.Add(node2); } tn.Nodes.AddRange(nodeList.ToArray()); tn.Expand(); return tn; }); parent_node.Nodes.Clear(); parent_node.Nodes.AddRange(nodes.ToArray()); }
//------------------------------------------------------------------------------- #endregion (-(Class)NodeInfo) //------------------------------------------------------------------------------- #region displayWeaponSynthesisDynamically_first 最上階部分結果データ表示 //------------------------------------------------------------------------------- // private void displayWeaponSynthesisDynamically_first(Weapon weapon, SynthesisWeapons[] synthesisweapons) { treeViewResult.Nodes.Clear(); TreeNode node = new TreeNode(weapon.ToString()); displayWeaponSynthesisDynamically(node, synthesisweapons); treeViewResult.Nodes.Add(node); node.Expand(); }