void ActorDoubleClicked(KeyValuePair <string, ActorReference> kv) { using (var apd = new ActorPropertiesDialog()) { var name = kv.Key; apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v)); apd.AddRow("(Type)", apd.MakeEditorControl(typeof(string), () => kv.Value.Type, v => kv.Value.Type = (string)v)); var objSaved = kv.Value.Save(); // TODO: make this work properly foreach (var init in Program.Rules.Actors[kv.Value.Type].GetInitKeys()) { var initName = init.First; apd.AddRow(initName, apd.MakeEditorControl(init.Second, () => { var nodesDict = objSaved.ToDictionary(); return(nodesDict.ContainsKey(initName) ? nodesDict[initName].Value : null); }, _ => { })); } apd.ShowDialog(); // TODO: writeback } }
void ActorDoubleClicked(KeyValuePair<string, ActorReference> kv) { using (var apd = new ActorPropertiesDialog()) { var name = kv.Key; apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v)); apd.AddRow("(Type)", apd.MakeEditorControl(typeof(string), () => kv.Value.Type, v => kv.Value.Type = (string)v)); var objSaved = kv.Value.Save(); // TODO: make this work properly foreach (var init in Program.Rules.Actors[kv.Value.Type].GetInitKeys()) apd.AddRow(init.First, apd.MakeEditorControl(init.Second, () => { var nodesDict = objSaved.ToDictionary(); return nodesDict.ContainsKey(init.First) ? nodesDict[init.First].Value : null; }, _ => { })); apd.ShowDialog(); // TODO: writeback } }