private List <UIElement> GenerateLayout(InstructionInstance instructionInstance) { var basicValues = instructionInstance.BasicValues; var asmValues = instructionInstance.AsmValues; List <UIElement> layout = new List <UIElement>(); layout.Add(new Label { Content = instructionInstance.Instruction.Name }); for (int k = 0; k < basicValues.Count; k++) { var v = basicValues[k]; layout.Add(v.Match(str => (UIElement) new Label { Content = str }, i => new Label { Content = i.ToString() })); } for (int k = 0; k < asmValues.Count; k++) { var v = asmValues[k]; layout.Add(v.Match(str => (UIElement) new Label { Content = str }, i => (UIElement) new Label { Content = i.ToString() })); } return(layout); }
private Action <object, RoutedEventArgs> AddInstance(Rule rule, List <ComboBox> asmList, List <ComboBox> basicList) { //TODO: Fix possibly memory leak return ((object sender, RoutedEventArgs e) => { List <IExprValue> asmValues = asmList.Select(ComboBox => ComboBox.SelectedItem as IExprValue).ToList(); List <IExprValue> basicValues = basicList.Select(ComboBox => ComboBox.SelectedItem as IExprValue).ToList(); var instruction = InstructionDB.instructionMap.FindMatch(rule, basicValues, asmValues); InstructionInstance instance = new InstructionInstance(instruction, asmValues, basicValues); IEnumerable source = listview.ItemsSource; var list = source.Cast <InstructionCellData>().ToList(); list.Add(new InstructionCellData(instance, Editor.counter)); list.Sort((x, y) => x.Id.CompareTo(y.Id)); listview.ItemsSource = list; // App.Database.AddToSave(instance); Editor.currentState = State.Start; //ClearLayout(Editor.lastSelected.StackPanel); ClearLayout(MenuStack); }); }
public InstructionCellData(InstructionInstance Instance, int Id) { this.Instance = Instance; this.Id = Id; }
public void AddToSave(InstructionInstance i) { lista.Add(new InstructionInstanceSerialized(i.Instruction.Name + " " + i.ToString())); }