public DialogResult ShowDialog(Tekening tek) { #region CheckedListbox invullen + link naar Layer listView1.Items.Clear(); foreach (Layer layer in tek.Layers) { ListViewItem lvi = new ListViewItem() { Text = layer.Naam, Tag = layer, Checked = layer.Zichtbaar }; layer.Tag = lvi; listView1.Items.Add(lvi); } #endregion DialogResult dr = this.ShowDialog(); if (dr == DialogResult.OK) { // Layers verwijderen #region ListviewItems ListViewItem[] listviewitems = new ListViewItem[listView1.Items.Count]; listView1.Items.CopyTo(listviewitems, 0); #endregion Layer[] to_remove = tek.Layers.Where(T => !listviewitems.Contains(T.Tag)).ToArray(); Layer[] to_add = listviewitems.Select(T => (Layer)T.Tag).Except(tek.Layers).ToArray(); Layer[] to_update = listviewitems.Select(T => (Layer)T.Tag).Intersect(tek.Layers).ToArray(); foreach (Layer layer in to_remove) { tek.RemoveLayer(layer); } foreach (Layer layer in to_add) { ListViewItem lvi = (ListViewItem)layer.Tag; layer.Naam = lvi.Text; layer.Zichtbaar = lvi.Checked; tek.Layers.Add(layer); } foreach (Layer layer in to_update) { ListViewItem lvi = (ListViewItem)layer.Tag; layer.Naam = lvi.Text; layer.Zichtbaar = lvi.Checked; } } return(dr); }
public VormenVerwijderdActie(Vorm[] Vormen, Tekening tek, string Beschrijving) : base(Vormen) { this.tek = tek; this.Beschrijving = Beschrijving; }
public VormenToegevoegdActie(Vorm[] Vormen, Tekening tek, string Beschrijving) : base(Vormen) { this.tek = tek; this.Beschrijving = Beschrijving; }