Browse Source

rename should not be executed, if the name is not valid or the selection was changed

pull/334/head
Siegfried Pammer 12 years ago
parent
commit
8cf4ce9a91
  1. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs
  2. 33
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/PropertyGrid.cs

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs

@ -191,6 +191,7 @@ namespace ICSharpCode.WpfDesign.AddIn
void OnPropertyGridPropertyChanged(object sender, PropertyChangedEventArgs e) void OnPropertyGridPropertyChanged(object sender, PropertyChangedEventArgs e)
{ {
if (propertyGridView.PropertyGrid.ReloadActive) return;
if (e.PropertyName == "Name") { if (e.PropertyName == "Name") {
if (!propertyGridView.PropertyGrid.IsNameCorrect) return; if (!propertyGridView.PropertyGrid.IsNameCorrect) return;
@ -205,7 +206,7 @@ namespace ICSharpCode.WpfDesign.AddIn
// rename the member // rename the member
IMember member = info.CompilationUnit.Classes [0].AllMembers.FirstOrDefault(m => m.Name == propertyGridView.PropertyGrid.OldName); IMember member = info.CompilationUnit.Classes [0].AllMembers.FirstOrDefault(m => m.Name == propertyGridView.PropertyGrid.OldName);
if (member != null) { if (member != null && propertyGridView.PropertyGrid.Name != null) {
FindReferencesAndRenameHelper.RenameMember(member, propertyGridView.PropertyGrid.Name); FindReferencesAndRenameHelper.RenameMember(member, propertyGridView.PropertyGrid.Name);
} }
} }

33
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/PropertyGrid.cs

@ -158,14 +158,17 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid
} }
} }
IEnumerable<DesignItem> selectedItems; IList<DesignItem> selectedItems;
public IEnumerable<DesignItem> SelectedItems { public IEnumerable<DesignItem> SelectedItems {
get { get {
return selectedItems; return selectedItems;
} }
set { set {
selectedItems = value; if (value != null)
selectedItems = value.ToList();
else
selectedItems = null;
RaisePropertyChanged("SelectedItems"); RaisePropertyChanged("SelectedItems");
Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action( Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(
delegate { delegate {
@ -179,16 +182,26 @@ namespace ICSharpCode.WpfDesign.Designer.PropertyGrid
Filter = null; Filter = null;
} }
volatile bool reloadActive;
public bool ReloadActive {
get { return reloadActive; }
}
void Reload() void Reload()
{ {
Clear(); reloadActive = true;
try {
if (SelectedItems == null || SelectedItems.Count() == 0) return; Clear();
if (SelectedItems.Count() == 1) SingleItem = SelectedItems.First();
if (selectedItems == null || selectedItems.Count == 0) return;
foreach (var md in GetDescriptors()) { if (selectedItems.Count == 1) SingleItem = selectedItems[0];
if (PassesFilter(md.Name))
AddNode(md); foreach (var md in GetDescriptors()) {
if (PassesFilter(md.Name))
AddNode(md);
}
} finally {
reloadActive = false;
} }
} }

Loading…
Cancel
Save