Browse Source

Merge pull request #623 from jogibear9988/master

A global Property Changed Event in the Component Service
pull/625/head
Siegfried Pammer 11 years ago
parent
commit
47cc3bdaa8
  1. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs
  2. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/ComboBoxEditor.xaml.cs
  3. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlComponentService.cs
  4. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlDesignItem.cs
  5. 23
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/EventArgs.cs
  6. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Services.cs

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

@ -254,9 +254,8 @@ namespace ICSharpCode.WpfDesign.Designer @@ -254,9 +254,8 @@ namespace ICSharpCode.WpfDesign.Designer
var operation = PlacementOperation.Start(items.ToList(), PlacementType.Move);
var newInstance = Activator.CreateInstance(containerType);
var newInstance = _context.Services.ExtensionManager.CreateInstanceWithCustomInstanceFactory(containerType, null);
DesignItem newPanel = _context.Services.Component.RegisterComponentForDesigner(newInstance);
//var changeGroup = newPanel.OpenGroup("Wrap in Container");
List<ItemPos> itemList = new List<ItemPos>();

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/PropertyGrid/Editors/ComboBoxEditor.xaml.cs

@ -35,7 +35,6 @@ using ICSharpCode.WpfDesign.Designer.themes; @@ -35,7 +35,6 @@ using ICSharpCode.WpfDesign.Designer.themes;
namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors
{
[TypeEditor(typeof(Enum))]
public partial class ComboBoxEditor
{
/// <summary>

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

@ -28,6 +28,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml @@ -28,6 +28,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
{
sealed class XamlComponentService : IComponentService
{
public event EventHandler<DesignItemPropertyChangedEventArgs> PropertyChanged;
#region IdentityEqualityComparer
sealed class IdentityEqualityComparer : IEqualityComparer<object>
{
@ -140,5 +142,16 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml @@ -140,5 +142,16 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
}
return site;
}
/// <summary>
/// raises the Property changed Events
/// </summary>
internal void RaisePropertyChanged(XamlModelProperty property)
{
var ev = this.PropertyChanged;
if (ev != null) {
ev(this, new DesignItemPropertyChangedEventArgs(property.DesignItem, property));
}
}
}
}

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlDesignItem.cs

@ -264,6 +264,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml @@ -264,6 +264,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
{
Debug.Assert(property != null);
OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs(property.Name));
((XamlComponentService)this.Services.Component).RaisePropertyChanged(property);
}
public override string ContentPropertyName {

23
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/EventArgs.cs

@ -44,6 +44,29 @@ namespace ICSharpCode.WpfDesign @@ -44,6 +44,29 @@ namespace ICSharpCode.WpfDesign
}
}
/// <summary>
/// Event arguments specifying a component and property as parameter.
/// </summary>
public class DesignItemPropertyChangedEventArgs : DesignItemEventArgs
{
readonly DesignItemProperty _itemProperty;
/// <summary>
/// Creates a new ComponentEventArgs instance.
/// </summary>
public DesignItemPropertyChangedEventArgs(DesignItem item, DesignItemProperty itemProperty) : base(item)
{
_itemProperty = itemProperty;
}
/// <summary>
/// The property affected by the event.
/// </summary>
public DesignItemProperty ItemProperty {
get { return _itemProperty; }
}
}
/// <summary>
/// Event arguments specifying a component as parameter.
/// </summary>

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

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

Loading…
Cancel
Save