На уровне View Model происходит стандартное сохранение:
if (Validate())
Save()
Валидация включает в себя как простую клиентскую валидацию, так и несколько вызовов к WCF. Разумеется, асинхронных, типа DoMethod() с ожиданием колбека DoMethodCompleted().
Учитывая, что они асинхронные, я не могу вернуть true/false в самом методе Validate(). Как в таких случаях принято поступать?
...разобрался что можно использовать INotifyDataErrorInfo для "асинхронной валидации". Да, с этим интерфейсом можно добавить ошибку откуда угодно, но как организовать сам Validate() — до сих пор проблема.