コード例 #1
0
        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;
        }