Здравствуйте.
У меня стоит задача сделать нередактируемымыми записи средств связи определенного типа. Но сохранить возможность добавления новых записей.
1. В BaseCommunicationDetail существует биндинг поля enabled на метод getCommunicationEnabled, но метод getCommunicationEnabled не вызывается.
2. Сможем ли мы в теории посмотреть в таком методе на параметр новизны записи?
Нравится
Добрый день, Егор!
Метод getCommunicationEnabled должен вызываться перед прорисовкой средства свзяи, то есть, если у вас не добавлено ни одного средства связи, то метод и не вызовется.
Этот метод достаточно сложно переопределить, так как он находится в BaseComunicationViewModel.
Проще переопределить метод getCommunicationItemViewConfig в BaseCommunicationDetail в котором модифицировать поле enabled у редактируемого поля.
А чтобы определить новый это объект создается или нет, можно в этой же детали добавить атрибут или переменную булеовго типа и переопределить метод addItem, в котором переменную (например, isNewItem) менять на true, тогда в getCommunicationItemViewConfig смотря на эту переменную вы определите дальнейшее поведение.