Используя IDataError , вы можете объединить два первых подхода, поскольку оба они позволяют предоставить ошибку для отдельных элементов управления, а также сводное сообщение об ошибке для всего представления.
В некоторых случаях у вас может быть логика проверки, которая зависит от комбинации нескольких различных входных значений, поэтому только проверка привязки для каждого элемента управления будет слишком запретительной. С другой стороны, вы все еще хотите иметь возможность предоставлять сообщение об ошибке для каждого элемента управления во многих случаях, когда это имеет смысл. IDataError позволяет вам делать и то, и другое. Наиболее распространенной реализацией пользовательского интерфейса является визуальная подсказка (например, мигающий значок) рядом с каждым недействительным элементом управления.
Отображение модального диалогового окна (окна сообщений) каждый раз, когда пользователь делает что-то недопустимое, является очень эффективным способом раздражать пользователя - он теряет контекст и вынужден тратить время, нажимая кнопку «ОК», чтобы закрыть диалоговое окно. .