Уведомление об изменении свойства без установщика - PullRequest
1 голос
/ 24 октября 2011

Я занимаюсь разработкой приложения WPF с использованием архитектуры MVVM и в качестве обычного сценария с использованием свойств для уведомления об изменениях, таких как

public List<EmployeeInfo> Employees
    {
            get
            {
                return _employees;
            }
            set
            {
                _employees = value;
                NotifyPropertyChanged(() => Employees);
            }
        }

Моя единственная проблема заключается в том, что я использую свойство setter, чтобы уведомить приложение об изменениях, внесенных в какое-либо значение, и, согласно FxCop, это плохая практика и 'CollectionPropertiesShouldBeReadOnly'. Итак, я хочу немного улучшить это, поэтому расскажите мне механизм, с помощью которого я мог бы использовать свойство Notify, измененное без использования setter.

Ответы [ 3 ]

3 голосов
/ 24 октября 2011

Если свойство вашей коллекции доступно только для чтения, вам не нужно ничего уведомлять о том, что вся коллекция изменилась на другую - вместо этого обработчики событий в коллекции будут уведомлены об изменениях в коллекции (добавление предметов и т. д.).

Если вам нужно изменить, к какой коллекции относится свойство в модели представления, вы всегда можете сделать установщик личным и сохранить существующий механизм уведомлений.

0 голосов
/ 24 октября 2011

Тот факт, что вы используете сеттер, означает, что вы пытаетесь заменить экземпляр коллекции новым экземпляром объекта.Если вы просто беспокоитесь об изменениях элементов в коллекции, это уже встроено в наблюдаемую коллекцию.FxCop будет жаловаться на сеттер независимо от того, был ли у вас вызов notifypropertychanges или нет.

0 голосов
/ 24 октября 2011

ObservableCollection сама сообщает о произошедших изменениях. Таким образом, вам не нужно вызывать событие PropertyChanged. Если вы считаете, что необходимо изменить коллекцию, вы можете удалять и добавлять элементы. Из-за наблюдаемой картины изменения будут объявлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...