2010-08-20 6 views
0

cas simple:Comment mettre en œuvre en commandant silverlight

<usercontrol> 
    <Views:UserListView x:Name="settingsTreeView"/> 
    <Button DataContext="{Binding ElementName=settingsTreeView, Path=SelectedItem}" 
      Command="{Binding CreateChildCommand}"/> 
</usercontrol> 

La tâche est tout simplement de se lier à un bouton DataContext qui implémente CreateChildCommand. DataContext est l'élément sélectionné dans l'arborescence. Rien ne se passe. J'ai vérifié les propriétés du bouton au moment de l'exécution: les propriétés Command et DataContext du bouton sont nulles.

Questions:

  1. est-il valide au changement DataContext lors de l'exécution?
  2. Comment passer l'élément sélectionné à l'objet Command?

En ce qui concerne commandant en Silverlight, vous pouvez vous référer à:

http://johnpapa.net/silverlight/5-simple-steps-to-commanding-in-silverlight/ http://community.infragistics.com/silverlight/media/p/125526.aspx

http://houseofbilz.com/archives/2009/05/22/adventures-in-mvvm-commands-in-silverlight/ http://www.silverlightshow.net/items/Silverlight-4-How-to-Command-Control.aspx

quelque chose va mal

Répondre

2

La première chose à faire serait de vérifier si votre les liaisons échouent. Vous devriez voir une sorte de sortie dans le journal de sortie si c'est le cas. Son valide pour modifier le DataContext à l'exécution, et vous pouvez lier l'élément sélectionné à la propriété CommandParameter sur le bouton si vous souhaitez qu'il soit transmis à la commande. Faites-moi savoir si vous avez des erreurs dans votre journal de sortie ou non.

+0

Bonjour. Il n'y a pas d'échec de liaison. J'ai essayé d'activer la notification de modification de propriété sur la propriété SelectedItem, et cela a bien fonctionné. J'ai fait de SelectedItem une propriété de dépendance. Bien que ce ne soit pas la meilleure décision dans le contexte actuel. Il serait préférable de concevoir sans changement de contexte de données lors de la modification d'un élément sélectionné. – Dmitry

Questions connexes