Browse Source

Raise an Event when a Component is Removed

pull/692/head
jkuehner 10 years ago
parent
commit
0e49242b83
  1. 6
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs
  2. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlComponentService.cs
  3. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs
  4. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Services.cs

6
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

@ -113,6 +113,12 @@ namespace ICSharpCode.WpfDesign.Designer @@ -113,6 +113,12 @@ namespace ICSharpCode.WpfDesign.Designer
foreach (var designItem in items) {
designItem.Name = null;
}
var service = parent.Services.Component as XamlComponentService;
foreach (var item in items) {
service.RaiseComponentRemoved(item);
}
operation.DeleteItemsAndCommit();
} catch {
operation.Abort();

13
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlComponentService.cs

@ -56,6 +56,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml @@ -56,6 +56,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
public event EventHandler<DesignItemEventArgs> ComponentRegistered;
public event EventHandler<DesignItemEventArgs> ComponentRemoved;
// TODO: this must not be a dictionary because there's no way to unregister components
// however, this isn't critical because our design items will stay alive for the lifetime of the
// designer anyway if we don't limit the Undo stack.
@ -164,5 +166,16 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml @@ -164,5 +166,16 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
ev(this, new DesignItemPropertyChangedEventArgs(property.DesignItem, property));
}
}
/// <summary>
/// raises the RaiseComponentRemoved Event
/// </summary>
internal void RaiseComponentRemoved(DesignItem item)
{
var ev = this.ComponentRemoved;
if (ev != null) {
ev(this, new DesignItemEventArgs(item));
}
}
}
}

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/PlacementOperation.cs

@ -294,6 +294,7 @@ namespace ICSharpCode.WpfDesign @@ -294,6 +294,7 @@ namespace ICSharpCode.WpfDesign
#endregion
#region ChangeGroup handling
/// <summary>
/// Gets/Sets the description of the underlying change group.
/// </summary>
@ -301,7 +302,7 @@ namespace ICSharpCode.WpfDesign @@ -301,7 +302,7 @@ namespace ICSharpCode.WpfDesign
get { return changeGroup.Title; }
set { changeGroup.Title = value; }
}
/// <summary>
/// Aborts the operation.
/// This aborts the underlying change group, reverting all changes done while the operation was running.

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Services.cs

@ -127,6 +127,9 @@ namespace ICSharpCode.WpfDesign @@ -127,6 +127,9 @@ namespace ICSharpCode.WpfDesign
/// <summary>Event raised whenever a component is registered</summary>
event EventHandler<DesignItemEventArgs> ComponentRegistered;
/// <summary>Event raised whenever a component is removed</summary>
event EventHandler<DesignItemEventArgs> ComponentRemoved;
/// <summary>Property Changed</summary>
event EventHandler<DesignItemPropertyChangedEventArgs> PropertyChanged;

Loading…
Cancel
Save