private void BarRemoved(Core.Model.Bar bar) { var ui = BarGrid.GetChildren <UI.Bar>().Single(b => b.Model == bar); BarGrid.Children.Remove(ui); AddLog("Bar removed"); }
private void BarAdded(Core.Model.Bar bar) { var track = TrackHeaders.GetChildren <UI.Track>().SingleOrDefault(t => t.Model == bar.Track); var row = Grid.GetRow(track); var column = bar.Track.Bars.IndexOf(bar); while (BarGrid.ColumnDefinitions.Count <= column) { BarGrid.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(Constants.BarWidth) }); } var ui = new UI.Bar(bar, track); ui.Selected += (s, b) => { SelectedBar?.Deselect(); SelectedBar = ui; }; bar.Updated += (s, fullUpdate) => { ui.FullUpdate = fullUpdate; UpdateBars.Enqueue(ui); }; Grid.SetRow(ui, row); Grid.SetColumn(ui, column); BarGrid.Children.Add(ui); AddLog("Bar added"); }