Мне нужна помощь в реализации INotifyPropertyChanged в моем собственном классе структуры данных. Это для назначения класса, но реализация INotifyPropertyChanged — это дополнение, которое я делаю сверх того, что требует рубрика.
У меня есть класс с именем «BusinessRules», который использует SortedDictionary для хранения объектов типа «Сотрудник». У меня есть DataGridView, показывающий всех моих сотрудников, и я хочу использовать свой объект класса BusinessRules в качестве источника данных для моего DataGridView. Для назначения требуется контейнер BusinessRules. Я безуспешно пытался реализовать INotifyPropertyChanged в этом классе.
DataSource, с которым я работаю, представляет собой BindingList. В настоящее время я использую этот BindingList в качестве контейнера sidecar и устанавливаю его в качестве источника данных. Каждое изменение, которое я вношу в свой объект класса BusinessRules, отражается в моем объекте класса BindingList. Но это явно корявое программирование, и я хочу сделать лучше.
Я пытался реализовать INotifyPropertyChanged в BusinessRules, но когда я устанавливаю созданный объект BusinessRules в качестве источника данных, DataGridView ничего не показывает. Я подозреваю, что проблема связана с методом NotifyPropertyChanged(). Я не знаю, что передать этому или что делать с тем, что передано. Большинство примеров связаны с изменением имени, но меня больше беспокоит, когда в SortedDictionary добавляется новый объект.
private void NotifyPropertyChanged( Employee emp )
{
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( emp.FirstName ) );
}
Что мне нужно изменить, чтобы заставить это работать? Вы объясните, почему моя попытка не работает?
Я, как известно, плохо формирую свои вопросы на StackOverflow. Это не преднамеренно. Пожалуйста, дайте мне знать, какая еще информация вам требуется, и я предоставлю ее как можно быстрее.