У меня есть окно, содержащее вложенный элемент управления NC1, который содержит 3 экземпляра вложенного элемента управления NC2. У меня есть кнопка «сброс» на NC1, которая должна сбрасывать значения NC1 и всех трех NC2 в NC1.
Я пробовал несколько реализаций кнопки «Сброс», но они не увенчались успехом. Во всех случаях HasDirtyModel остается истинным даже при сбросе данных.
Я попытался явно вызвать ((IEditableObject)nc2).CancelEdit() для всех трех экземпляров NC2 и ((IEditableObject)nc1).CancelEdit(). Хотя это полностью сбрасывает, выполнение только CancelEdit на NC1 не приводило к сбросу моделей NC2. (Модель представления NC1 имеет свойство с [Model] и [Expose("NC2s")], которое является списком в модели NC1.
Вызов CancelViewModel() также сбрасывает данные, но все равно оставляет значение HasDirtyModel равным true.
Все модели происходят от ModelBase. Что мне делать, чтобы HasDirtyModel стал ложным.
Эта проблема связана с приложением WPF, использующим Catel 3.9.