Index: Core/GIS/src/Core.GIS.SharpMap/Rendering/Thematics/CustomTheme.cs
===================================================================
diff -u -r29074485032e73e932140ea9980c21d929e4dc08 -ra60bbf1de4ed3d809e8325c0b7359f7786f4a16d
--- Core/GIS/src/Core.GIS.SharpMap/Rendering/Thematics/CustomTheme.cs (.../CustomTheme.cs) (revision 29074485032e73e932140ea9980c21d929e4dc08)
+++ Core/GIS/src/Core.GIS.SharpMap/Rendering/Thematics/CustomTheme.cs (.../CustomTheme.cs) (revision a60bbf1de4ed3d809e8325c0b7359f7786f4a16d)
@@ -94,7 +94,21 @@
set
{
OnPropertyChanging("DefaultStyle");
+
+ if (defaultStyle != null)
+ {
+ defaultStyle.PropertyChanging -= OnPropertyChanging;
+ defaultStyle.PropertyChanged -= OnPropertyChanged;
+ }
+
defaultStyle = value;
+
+ if (defaultStyle != null)
+ {
+ defaultStyle.PropertyChanging += OnPropertyChanging;
+ defaultStyle.PropertyChanged += OnPropertyChanged;
+ }
+
OnPropertyChanged("DefaultStyle");
}
}
@@ -223,24 +237,40 @@
public event PropertyChangingEventHandler PropertyChanging;
- protected void OnPropertyChanging(string propertyName)
+ private void OnPropertyChanging(string propertyName)
{
if (PropertyChanging != null)
{
PropertyChanging(this, new PropertyChangingEventArgs(propertyName));
}
}
+ private void OnPropertyChanging(object sender, PropertyChangingEventArgs e)
+ {
+ if (PropertyChanging != null)
+ {
+ PropertyChanging(sender, e);
+ }
+ }
+
public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged(string propertyName)
+ private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
+ private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
+ {
+ if (PropertyChanged != null)
+ {
+ PropertyChanged(sender, e);
+ }
+ }
+
#endregion
}
}
\ No newline at end of file
Index: Core/GIS/test/Core.GIS.SharpMap.Tests/Core.GIS.SharpMap.Tests.csproj
===================================================================
diff -u -rb6ffe77a74979f9893a1b338a13acce47c57feda -ra60bbf1de4ed3d809e8325c0b7359f7786f4a16d
--- Core/GIS/test/Core.GIS.SharpMap.Tests/Core.GIS.SharpMap.Tests.csproj (.../Core.GIS.SharpMap.Tests.csproj) (revision b6ffe77a74979f9893a1b338a13acce47c57feda)
+++ Core/GIS/test/Core.GIS.SharpMap.Tests/Core.GIS.SharpMap.Tests.csproj (.../Core.GIS.SharpMap.Tests.csproj) (revision a60bbf1de4ed3d809e8325c0b7359f7786f4a16d)
@@ -137,6 +137,7 @@
+
Index: Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CategorialThemeTest.cs
===================================================================
diff -u -r0c6e0021eebf932c06c7f6905dd3abad31ba60d6 -ra60bbf1de4ed3d809e8325c0b7359f7786f4a16d
--- Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CategorialThemeTest.cs (.../CategorialThemeTest.cs) (revision 0c6e0021eebf932c06c7f6905dd3abad31ba60d6)
+++ Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CategorialThemeTest.cs (.../CategorialThemeTest.cs) (revision a60bbf1de4ed3d809e8325c0b7359f7786f4a16d)
@@ -180,13 +180,13 @@
}
[Test]
- public void CategorialThemeItemBubblesPropertyChangesOfDefaultStyle()
+ public void CategorialThemeBubblesPropertyChangesOfDefaultStyle()
{
var counter = 0;
var defaultStyle = new VectorStyle();
- var categorialThemeItem = new CategorialTheme { DefaultStyle = defaultStyle };
+ var categorialTheme = new CategorialTheme { DefaultStyle = defaultStyle };
- ((INotifyPropertyChanged) categorialThemeItem).PropertyChanged += (sender, e) =>
+ ((INotifyPropertyChanged) categorialTheme).PropertyChanged += (sender, e) =>
{
if (sender is IStyle)
{
Index: Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CustomThemeTest.cs
===================================================================
diff -u
--- Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CustomThemeTest.cs (revision 0)
+++ Core/GIS/test/Core.GIS.SharpMap.Tests/Rendering/Thematics/CustomThemeTest.cs (revision a60bbf1de4ed3d809e8325c0b7359f7786f4a16d)
@@ -0,0 +1,32 @@
+using System.ComponentModel;
+using Core.GIS.SharpMap.Api;
+using Core.GIS.SharpMap.Rendering.Thematics;
+using Core.GIS.SharpMap.Styles;
+using NUnit.Framework;
+
+namespace Core.GIS.SharpMap.Tests.Rendering.Thematics
+{
+ [TestFixture]
+ public class CustomThemeTest
+ {
+ [Test]
+ public void CustomThemeBubblesPropertyChangesOfDefaultStyle()
+ {
+ var counter = 0;
+ var defaultStyle = new VectorStyle();
+ var customTheme = new CustomTheme(null) { DefaultStyle = defaultStyle };
+
+ ((INotifyPropertyChanged) customTheme).PropertyChanged += (sender, e) =>
+ {
+ if (sender is IStyle)
+ {
+ counter++;
+ }
+ };
+
+ defaultStyle.EnableOutline = true;
+
+ Assert.AreEqual(1, counter);
+ }
+ }
+}