private void propGrid_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { // обновление наименования изображения if (e.ChangedItem.PropertyDescriptor.Name == "Name") { string oldName = (string)e.OldValue; string newName = (string)e.ChangedItem.Value; if (oldName != newName) { // изменение наименования изображения ImageListItem imageInfo = propGrid.SelectedObject as ImageListItem; imageInfo.Image.Name = newName; // обновление словаря изображений схемы images.Remove(oldName); images[newName] = imageInfo.Image; // обновление списка изображений на форме lbImages.SelectedIndexChanged -= lbImage_SelectedIndexChanged; lbImages.BeginUpdate(); lbImages.Items.RemoveAt(lbImages.SelectedIndex); lbImages.SelectedIndex = lbImages.Items.Add(imageInfo); lbImages.EndUpdate(); lbImages.SelectedIndexChanged += lbImage_SelectedIndexChanged; // отслеживание изменений observableItem.OnItemChanged(SchemeChangeTypes.ImageRenamed, imageInfo.Image, oldName); } } }
private void btnOK_Click(object sender, EventArgs e) { // разбор текста и заполнение фильтра по каналам cnlFilter.ParseCnlFilter(txtCnlNums.Text); // отслеживание изменений observableItem.OnItemChanged(SchemeChangeTypes.SchemeDocChanged, observableItem); DialogResult = DialogResult.OK; }