private void geoset_PropertyChanged(object sender, PropertyChangedEventArgs e) { M2Geoset g = sender as M2Geoset; if (e.PropertyName == "Visible") { M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode; if (node != null) { node.ShowGeoset(g.Index, g.Visible); } } }
public void Update() { M2SceneNode node = ModelSceneService.Instance.MainM2SceneNode; Geosets.Clear(); if (node == null) { return; } SGeoset[] geosets = node.Geosets; for (int i = 0; i < node.Geosets.Length; ++i) { M2Geoset g = new M2Geoset(ref geosets[i], i, node.IsGeosetShow(i)); Geosets.Add(g); g.PropertyChanged += new PropertyChangedEventHandler(geoset_PropertyChanged); } geosetsView = CollectionViewSource.GetDefaultView(Geosets); }