| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Copyright (c) The Avalonia Project. All rights reserved.
- // Licensed under the MIT license. See licence.md file in the project root for full license information.
- using System.ComponentModel;
- using System.Linq;
- using System.Runtime.CompilerServices;
- namespace Avalonia.UnitTests
- {
- public class NotifyingBase : INotifyPropertyChanged
- {
- private PropertyChangedEventHandler _propertyChanged;
- public event PropertyChangedEventHandler PropertyChanged
- {
- add
- {
- _propertyChanged += value;
- ++PropertyChangedSubscriptionCount;
- }
- remove
- {
- if (_propertyChanged?.GetInvocationList().Contains(value) == true)
- {
- _propertyChanged -= value;
- --PropertyChangedSubscriptionCount;
- }
- }
- }
- public int PropertyChangedSubscriptionCount
- {
- get;
- private set;
- }
- public void RaisePropertyChanged([CallerMemberName] string propertyName = null)
- {
- _propertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- }
- }
- }
|