.NET 4.x Генерация события при изменении свойства - C#
Формулировка задачи:
Есть public static class DataProvider. Который явлчется поставщиком данных (он содержит коллекцию из другого класса) т.е. что то типа у MyObj есть набор свойств к примеру . Необходимо сделать так что бы при изменении свойства Age вызывалось событие к которому можно прицепится из кода через статический класс поставщика данных, что то типа:. Сейчас у меня сделано так что изменять своство Age можно только через методы класса DataProvider типа ( DataProvider.ChangeAge(int id, int value) ; ). Как сделать более корректно ?
public static List<MyObj> Data;
public int Age { get; set; }DataProvider.OnChangeAge += myHandlerAgeChange;
Решение задачи: «.NET 4.x Генерация события при изменении свойства»
textual
Листинг программы
class Program
{
static void Main(string[] args)
{
DataProvider.Data[0].OnChangeAge += new MyObj.ChangeAge(Method);
DataProvider.Data[0].Age = 34;
Console.ReadKey();
}
static void Method()
{
Console.WriteLine("Change property Age.");
}
}
static class DataProvider
{
public static List<MyObj> Data = new List<MyObj> { new MyObj()};
}
public class MyObj
{
public delegate void ChangeAge();
public event ChangeAge OnChangeAge;
private int _age;
public int Age { get {return _age;}
set { _age = value; OnChangeAge(); }
}
}