// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
using System;
using System.ComponentModel;
namespace Microsoft.ClearScript.Test
{
public class GeneralTestObject
{
private string name;
public string Name
{
get => name;
set
{
name = value;
InvokeChange("Name", name);
}
}
private int age;
public int Age
{
get => age;
set
{
age = value;
InvokeChange("Age", age);
}
}
public event PropertyChangedEventHandler Change;
public static event EventHandler StaticChange;
public GeneralTestObject(string name, int age)
{
this.name = name;
this.age = age;
}
private void InvokeChange(string propertyName, object propertyValue)
{
Change?.Invoke(this, new PropertyChangedEventArgs(propertyName));
StaticChange?.Invoke(null, new StaticEventArgs(propertyName, propertyValue));
}
#region Nested type: StaticEventArgs
public class StaticEventArgs : PropertyChangedEventArgs
{
public object PropertyValue { get; }
public StaticEventArgs(string name, object value)
: base(name)
{
PropertyValue = value;
}
}
#endregion
}
}