2010-05-19 4 views
3

Mon ViewModel:liaison de données mise à jour manuellement dans WPF MVVM

class ViewModel 
{ 
public string FileName {get;set;} 
} 

et dans mon View Je lie le contenu d'une étiquette de ViewModel FileName.

maintenant Lorsque je fais glisser un fichier vers mon View par glisser-déposer, comment puis-je mettre à jour la propriété Content du label, afin que les FileName du ViewMode soient également mis à jour via la liaison?

Directement situé propriété Content de l'étiquette ne fonctionnera pas, il tout simplement effacer la liaison.

Répondre

3

3 choix rapides ... (Assurez-vous que la classe implémente INotifyPropertyChanged et FileName soulève cet événement.)

  1. Vous pouvez simplement tirer la machine virtuelle de DataContext de la vue et au cours de la glisser- événement -Drop définir la propriété FileName du ViewModel.

  2. Utilisez un AttachedBehavior pour permettre à l'événement (glisser-déposer) à utiliser comme une commande (http://geekswithblogs.net/HouseOfBilz/archive/2009/08/27/adventures-in-mvvm-ndash-binding-commands-to-any-event.aspx)

  3. Utilisez un modèle Messenger, comme Messager de MVVMLight, d'envoyer un message de la vue à ViewModel et gérer le message sur la machine virtuelle comme vous le feriez d'une action de commandement.

Questions connexes