// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using System; using System.ComponentModel; namespace CommunityToolkit.Mvvm.ComponentModel; /// /// An attribute that indicates that a given type should implement the interface and /// have minimal built-in functionality to support it. This includes exposing the necessary event and having two methods /// to raise it that mirror and /// . For more extensive support, use . /// /// This attribute can be used as follows: /// /// [INotifyPropertyChanged] /// partial class MyViewModel : SomeOtherClass /// { /// // Other members here... /// } /// /// /// [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)] public sealed class INotifyPropertyChangedAttribute : Attribute { /// /// Gets or sets a value indicating whether or not to also generate all the additional helper methods that are found /// in as well (eg. . /// If set to , only the event and /// the two overloads will be generated. /// The default value is . /// public bool IncludeAdditionalHelperMethods { get; init; } = true; }