Member 13046192 Ответов: 1

Как я могу обнаружить изменение свойства в 3-м стороннем/иностранном классе C#


У меня есть класс person, который имеет следующие свойства:
Id, имя,LoggedInStatus, который я получаю от Visual Studio Intellisense.
Вы можете представить себе этот класс примерно так, как показано ниже.
открытый класс человек
{
public int Id { get; set; }
public string Name { get; set; }
public bool LoggedInStatus{ get; set; }
}
Однако я не могу изменить класс Person, поскольку он получен из библиотеки dll из другого проекта (через добавленную ссылку на файл .csproj), а также мне не разрешено это делать, что мешает мне реализовать подход INotifyProperyChanged.
Мне нужно следить за свойством LoggedInStatus на предмет любых изменений и предпринимать необходимые действия.
Пожалуйста помочь.

Что я уже пробовал:

Из идей. Я не знаю, что делать дальше.

1 Ответов

Рейтинг:
1

Gerry Schmitz

Публичный класс MyPerson : Person, INotifyPropertyChanged

и т.д.

Сеттеры не нуждаются в изменении; Вы можете вызвать OnPropertyChanged на экземпляре (с именем свойства или без него) из любого места.


Member 13046192

Привет. Спасибо. Но я все еще не могу этого понять. Пожалуйста помочь. Этот код выглядит следующим образом:
публичный класс MyPerson : Person,INotifyPropertyChanged
{
публичное мероприятие PropertyChangedEventHandler PropertyChanged;


[NotifyPropertyChangedInvocator]
защищенных виртуальных недействительными on свойство changed([callermembername не используется] строку имя_свойства = нуль)
{
Собственность поменялась?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}

классная программа
{
static void Main(string[] args)
{

MyPerson x= новый MyPerson();
х.PropertyChanged, Как += X_PropertyChanged;
х.LoggedInStatus = истина;
х.LoggedInStatus = ложь;
х.LoggedInStatus = истина;
}

частных статических недействительным X_PropertyChanged(объект отправителя, система.ComponentModel.PropertyChangedEventArgs e)
{

}
}

Member 13046192

Он должен попасть в X_PropertyChanged(отправитель объекта, система.ComponentModel.Метод PropertyChangedEventArgs e) каждый раз, когда LoggedInStatus изменяется с true на false и наоборот. Но это не так.