diff --git a/samples/BindingTest/TestItemView.paml b/samples/BindingTest/TestItemView.paml
index de77c525ef..80b377a2ab 100644
--- a/samples/BindingTest/TestItemView.paml
+++ b/samples/BindingTest/TestItemView.paml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/samples/BindingTest/ViewModels/MainWindowViewModel.cs b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
index bfb07cb299..6df695527a 100644
--- a/samples/BindingTest/ViewModels/MainWindowViewModel.cs
+++ b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
@@ -17,7 +17,7 @@ namespace BindingTest.ViewModels
Enumerable.Range(0, 20).Select(x => new TestItem
{
StringValue = "Item " + x,
- Detail = "Item " + " details",
+ Detail = "Item " + x + " details",
}));
SelectedItems = new ObservableCollection();
diff --git a/src/Perspex.Base/Collections/InccDebug.cs b/src/Perspex.Base/Collections/InccDebug.cs
new file mode 100644
index 0000000000..a5cee01a74
--- /dev/null
+++ b/src/Perspex.Base/Collections/InccDebug.cs
@@ -0,0 +1,12 @@
+// Copyright (c) The Perspex Project. All rights reserved.
+// Licensed under the MIT license. See licence.md file in the project root for full license information.
+
+using System;
+
+namespace Perspex.Collections
+{
+ public interface InccDebug
+ {
+ Delegate[] GetCollectionChangedSubscribers();
+ }
+}
diff --git a/src/Perspex.Base/Collections/PerspexList.cs b/src/Perspex.Base/Collections/PerspexList.cs
index d9c4eafeea..8a5c209c72 100644
--- a/src/Perspex.Base/Collections/PerspexList.cs
+++ b/src/Perspex.Base/Collections/PerspexList.cs
@@ -53,7 +53,7 @@ namespace Perspex.Collections
///
///
///
- public class PerspexList : IPerspexList, IList
+ public class PerspexList : IPerspexList, IList, InccDebug
{
private List _inner;
private NotifyCollectionChangedEventHandler _collectionChanged;
@@ -434,6 +434,9 @@ namespace Perspex.Collections
return _inner.GetEnumerator();
}
+ ///
+ Delegate[] InccDebug.GetCollectionChangedSubscribers() => _collectionChanged?.GetInvocationList();
+
///
/// Raises the event with an add action.
///
diff --git a/src/Perspex.Base/Perspex.Base.csproj b/src/Perspex.Base/Perspex.Base.csproj
index b886e9b08b..4e581950b6 100644
--- a/src/Perspex.Base/Perspex.Base.csproj
+++ b/src/Perspex.Base/Perspex.Base.csproj
@@ -43,6 +43,7 @@
Properties\SharedAssemblyInfo.cs
+
diff --git a/src/Perspex.Controls/Control.cs b/src/Perspex.Controls/Control.cs
index 08bdff73ed..4c67051c7d 100644
--- a/src/Perspex.Controls/Control.cs
+++ b/src/Perspex.Controls/Control.cs
@@ -528,6 +528,11 @@ namespace Perspex.Controls
{
child.OnDetachedFromLogicalTree(e);
}
+
+ if (((InccDebug)_classes).GetCollectionChangedSubscribers()?.Length > 0)
+ {
+ System.Diagnostics.Debugger.Break();
+ }
}
///