private void objectList_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Delete) { ObjectListElement o = SelectedElement; objectList.SelectionChanged -= objectList_SelectionChanged; if (o is Camera) { if (cameras.Count > 1) { cameras.Remove(o as Camera); objects.Remove(o); selectedCamera = cameras[0]; } return; } if (o is Light) { if (lights.Count > 1) { lights.Remove(o as Light); objects.Remove(o); } return; } Shapes.Remove(o as GeometryObject); objects.Remove(o); objectList.ItemsSource = objects; objectList.SelectionChanged += objectList_SelectionChanged; Draw(); } }
private void objectList_SelectionChanged(object sender, SelectionChangedEventArgs e) { panel.Children.Clear(); SelectedElement = objects.First(o => o.Title.Equals(((ObjectListElement)objectList.SelectedItem).Title)); //objects.Find(o => o.Title.Equals(((ObjectListElement)objectList.SelectedItem).Title)); string objectType = SelectedElement.Title.Split(' ')[0]; switch (objectType) { case "Camera": CreateCameraPanel(); selectedCamera = SelectedElement as Camera; colorArray = new byte[arraySize]; Draw(); break; case "Light": CreateLightPanel(); break; case "Cuboid": CreateCuboidPanel(); break; case "Cone": CreateConePanel(); break; } }