2013-12-03 5 views
0

Имея представление унаследованное от Catel's DataWindow базового класса с DataWindowMode.OkCancelApply. Теперь я пытаюсь отключить кнопки OK/Apply (или даже Only Apply) и включить их, когда какое-либо свойство модели было изменено.Отключить/Включить кнопки DataWindow

После расследования я обнаружил, что ValidateData() переопределяет то, что мне нужно. Все еще не могу понять, как проверить неизмененные свойства модели с помощью Catel.

ответ

0

Катель поддерживает различные способы проверки:

  1. На модели (но тогда вам потребуется ViewModelToModel или Expose атрибуты)
  2. На модели представления (переопределить ValidateFields и ValidateBusinessRules)

Для получения дополнительной информации о валидации в Catel см. Эту документацию:

+0

благодаря Герт! Я также проверил эти страницы. Для моей цели требуется отслеживать состояние IsDirty модели. Если для него установлено значение true, тогда кнопка «Применить» в представлении должна быть включена, в противном случае отключена. – IUnknown

+0

А, я не думаю, что для этого есть реальное решение. Почему вы не можете держать его включенным все время? –

+0

Хотел бы я, но в соответствии с требованиями приложения. Простейший теоретический способ реализовать это переопределить 'ValidateData()' и просто вернуть значение 'IsDirty' базовой модели. Практически это непросто, потому что: 1. Просмотр не может получить доступ к Модели, 2) В случае, если я получу модель с помощью 'ServiceLocator', ее' IsDirty' по какой-то причине всегда 'истина' – IUnknown

Смежные вопросы