Se soffrite da dipendenza acuta da M-V-VM questa è una discreta rottura perchè il drag & drop è “roba” totalmente da Presentation (aka View) ma la logica è totalmente da Business (aka ViewModel). La gestione del drag & drop è quindi un ottimo candidato per divertirci con gli attached behavior, nome figoso per le ormai legacy attached properties. Quello che vogliamo ottenere è questo: <ListView HorizontalAlignment="Stretch"
SelectedItem="{Binding Path=Selection}"
behaviors:DragDropManager.DataObject="{Binding Path=Selection}"
...
Una “mailing list” spontanea tra svariati partecipanti mi porta verso questo post. Il problema è la validazione dell’input dell’utente, vediamo da dove sono partito: La situazione è decisamente banale, classicissima Window (Wpf) per l’editing di una Entity (Person), il tutto basato strettamente su M-V-VM, quindi è un “requisito” che nel code-behind della Window non ci finisca nulla, o xaml o ViewModel. Il problema è la vadilazione dell’input, diamo un paio di regole di business che “incriccano” la cosa: Rule A: Person.FirstName non deve essere vuoto; Rule B: Person.LastName non deve...