private void Delete_Layer_Click(object sender, RoutedEventArgs e) { ObservableCollection <DxfLayerExtended> layers = new ObservableCollection <DxfLayerExtended>(LayerList.SelectedItems.OfType <DxfLayerExtended>()); int index = LayerList.SelectedIndex; for (int i = 0; i < layers.Count; i++) { DxfLayerExtended layer = layers[i]; if (layer.Name != "0") { LayerList.SelectedItems.Remove(layer); LayerCollection.Remove(layer); } else { MessageBox.Show("Cannot Delete Default Layer \"0\"", "Warning"); } } if (LayerList.Items.Count > index) { LayerList.SelectedIndex = index; } else { LayerList.SelectedIndex = LayerList.Items.Count - 1; } }
/// <summary> /// Clone layer collection in document for modification /// </summary> /// <param name="dxfDocument"></param> public Layer(netDxf.DxfDocument dxfDocument) { foreach (netDxf.Tables.Layer layer in dxfDocument.Layers) { var newLayer = new DxfLayerExtended(layer.Name) { IsVisible = layer.IsVisible, IsFrozen = layer.IsFrozen, IsLocked = layer.IsLocked, Plot = layer.Plot, Color = layer.Color, Linetype = layer.Linetype, Lineweight = layer.Lineweight, Transparency = layer.Transparency, }; LayerCollection.Add(newLayer); } DataContext = this; InitializeComponent(); }