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(); + } } ///