Ciao,
non è che non ti si voglia rispondere, il problema è che non si tratta di un argomento da 2 parole.
Cmq, come ti è stato già detto nell'altro thread, il problema non sta tanto nell'utilizzare NHibernate (che anzi, negli smart client è più facile da gestire non avendo il problema di memorizzare da qualche parte la session), quanto nell'uso di custom entities con WPF (o Winforms).
Ciò detto...
Entities: devono implementare INotifyPropertyChanged, IEditableObject e sarebbe meglio anche IDataErrorInfo perchè se usi WPF è direttamente utilizzabile per la validazione dei dati.
Collezioni: NHibernate usa esclusivamente IList<T>, mentre se vuoi usarle in WPF ti serve BindingList o ObservableCollection. Pertanto, tu avrai la tua bella classe Fattura con dentro una proprietà
public IList<Dettaglio> Dettagli
Come la agganci nella tua bella griglia in cui editi i dettagli? Non direttamente, ma usando una BindingList<Dettaglio> come wrapper:
BindingList<Dettaglio> dettagliDaBindare = new BindingList<Dettaglio>(miaFattura.Dettagli);
Come ti consigliava Ricciolo, da' anche un'occhiata alla RafCollection che ha un ottimo supporto per il databinding su WPF e winforms.
Ciao.
m.