Behavior vs Attached Property
Ho sempre snobbato i behavior preferendo, senza un buon motivo se non la pigrizia, le attached properties con cui si possono ottenere esattamente gli stessi risultati.
In realtà giochicchiando con i behavior mi sono reso conto che c’è un abisso tra i 2 mondi:
- Un behavior è una classe (e non una classe statica) e questo ha l’enorme vantaggio che a runtime ogni behavior è un’istanza diversa semplificando non di poco la gestione di scenari che con le attached properties sono come minimo un po’ ostici;
- Quando lo startup di un behavior (OnAttached) è completato tutto il behavior è sicuramente inizializzato ergo se il behavior espone più proprietà non avete il problema, come per le attached property, di verificare che le proprietà siano inizializzate e come;