IDataErrorInfo no winforms
-
05-07-2019 - |
Pergunta
info Can IDataError ser usado corretamente em um aplicativo winforms? No passado, eu estava fazendo a minha ligação da maneira usual (1) e fez a validação no evento OnValidating do controle particular. Gostaria de mover a validação de dados para o modelo de domínio para que eu possa facilmente trocar interfaces de usuário e de modo que toda a lógica está em um lugar.
Eu estava olhando para IDataErrorInfo, mas tudo o que eu encontrar ofertas com WPF e o aplicativo em desenvolvimento é estritamente um aplicativo winforms.
Notei também que a ligação que será usado em WPF está em System.Windows.Data e a ligação que eu sempre tenho usado é em System.Windows.Forms (que eu não parecem ter quando eu tento para adicioná-lo como um recurso - Eu estou usando 3.5) .Aside da propriedade "ValidatesOnDataErrors" há uma diferença entre os dois
?(1) a forma como sendo usual:
myControl.DataBindings.Add(new Binding("Text", this.domainModel, "Property"));
Solução
Isso funciona com a ErrorProvider componente no Windows Forms.
Para um tutorial completo, mas muito simples e curto, consulte este post .
Outras dicas
Sim, IDataErrorInfo
trabalha em winforms. Por exemplo, DataGridView
vai usar este automaticamente tanto por linha e por-célula. Mas é aplicação específica, e não é automaticamente aplicada a outras ligações. Eu fiz uma vez escrever um código para associá-lo a um do provedor de erro e fazer o trabalho através de eventos de alteração, mas eu não tê-lo à mão, infelizmente. Mas eu me lembro que não era enorme.