private void btnNewExtension_Click(object sender, EventArgs e) { if (_edSvc.IsNew) { MessageBox.Show(Strings.SaveResourceFirst); return; } var ext = ObjectFactory.CreateFeatureSourceExtension(); TreeNode node = new TreeNode(); node.Tag = ext; node.ImageIndex = node.SelectedImageIndex = IDX_EXTENSION; PropertyChangedEventHandler extChange = (s, evt) => { if (evt.PropertyName == nameof(ext.Name)) { node.Text = ext.Name; } else if (evt.PropertyName == nameof(ext.FeatureClass)) { node.ToolTipText = string.Format(Strings.ExtendedClassTooltip, ext.FeatureClass); } }; ext.PropertyChanged += WeakEventHandler.Wrap(extChange, (eh) => ext.PropertyChanged -= eh); _fs.AddExtension(ext); OnResourceChanged(); trvExtensions.Nodes.Add(node); trvExtensions.SelectedNode = node; }