Browse Source

A global Property Changed Event in the Component Service

pull/623/head
jogibear9988 11 years ago
parent
commit
27e6a81474
  1. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlComponentService.cs
  2. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Xaml/XamlDesignItem.cs
  3. 23
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/EventArgs.cs
  4. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Services.cs

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