Browse Source

Merge pull request #623 from jogibear9988/master

A global Property Changed Event in the Component Service
pull/625/head
Siegfried Pammer 12 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
var operation = PlacementOperation.Start(items.ToList(), PlacementType.Move); 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); DesignItem newPanel = _context.Services.Component.RegisterComponentForDesigner(newInstance);
//var changeGroup = newPanel.OpenGroup("Wrap in Container");
List<ItemPos> itemList = new List<ItemPos>(); 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;
namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors namespace ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors
{ {
[TypeEditor(typeof(Enum))]
public partial class ComboBoxEditor public partial class ComboBoxEditor
{ {
/// <summary> /// <summary>

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

@ -28,6 +28,8 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
{ {
sealed class XamlComponentService : IComponentService sealed class XamlComponentService : IComponentService
{ {
public event EventHandler<DesignItemPropertyChangedEventArgs> PropertyChanged;
#region IdentityEqualityComparer #region IdentityEqualityComparer
sealed class IdentityEqualityComparer : IEqualityComparer<object> sealed class IdentityEqualityComparer : IEqualityComparer<object>
{ {
@ -140,5 +142,16 @@ namespace ICSharpCode.WpfDesign.Designer.Xaml
} }
return site; 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
{ {
Debug.Assert(property != null); Debug.Assert(property != null);
OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs(property.Name)); OnPropertyChanged(new System.ComponentModel.PropertyChangedEventArgs(property.Name));
((XamlComponentService)this.Services.Component).RaisePropertyChanged(property);
} }
public override string ContentPropertyName { public override string ContentPropertyName {

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

@ -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> /// <summary>
/// Event arguments specifying a component as parameter. /// Event arguments specifying a component as parameter.
/// </summary> /// </summary>

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

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

Loading…
Cancel
Save