2013-07-18 7 views
5

Dati i seguenti requisiti:WPF convalida quadro

  • WPF Application
  • MVVM Motivo
  • convalidabile ViewModels
    • con annidata (validabile) ViewModels
    • con collezioni nidificati di ViewModels (validabile)
  • Controlli WPF disattivati ​​in caso di errori di convalida
    • ad es. Binding Visualizzazioni IsEnabled a IsValid-Proprietà di ViewModels

non v'è alcun built-in o di un quadro di convalida di terze parti disponibili per WPF, o devo scrivere uno per conto mio? Ho provato IDataErrorInfo, ma non sono riuscito a convalidare i modelmodelli nidificati o intere raccolte.

Grazie!

risposta

5

Se si desidera un framework con supporto extensive validation, direi che Catel è la soluzione migliore.

Supporta inoltre la convalida annidata dall'idea di Nested User Controls che propagano le informazioni di convalida ai relativi modelli di visualizzazione padre o ai controlli utente.

Ha anche il supporto per avvisi e lavori sul campo e sul livello della logica aziendale.

Il framework ha anche un controllo InfoBarMessage che può visualizzare le informazioni di convalida in modo da non dover creare un modello per tali.

Ha anche un modulo di estensione che supporta la convalida di Fluent, simile alla fluente struttura di NHibernate o Entity ma per la convalida.

+0

Grazie, questo suona bene per i nuovi progetti, bel suggerimento! L'utilizzo di Castel per i progetti esistenti (viewmodels) comporterebbe la riscrittura di ogni viewmodel per estendere Catels ViewModelBase, giusto? –

+0

@JonasW suppongo di sì perché 'ViewModelBase' contiene tutta la logica di validazione e implementa' IDataErrorInfo' che Catel utilizza dietro le quinte per inviare le informazioni di convalida al motore WPF. –