J'ai un ContextMenu dont les éléments sont tous liés à des commandes et s'activent/désactivent correctement après qu'UNE commande soit invoquée à partir d'une autre source, mais avant, ils sont tous désactivés. Ainsi, si je lance l'application, tous les éléments du menu sont désactivés, mais si j'invoque l'une des commandes liées à partir d'une autre source (boutons, par exemple), ils sont synchronisés avec le code CanExecute. Je n'ai aucune idée de la façon de déboguer ce problème. Toute réflexion serait utile !
Réponses
Trop de publicités?
midspace
Points
595
Il semble qu'il y ait un bogue lorsqu'il n'y a pas d'élément ciblé dans la portée principale de la fenêtre. Une solution de contournement consiste à lier la CommandTarget de MenuItem à la fenêtre principale.
Réponse de Marco Zhou ici : http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/7bd75a7c-eab4-4f3a-967b-94a9534a7455
<Window.ContextMenu>
<ContextMenu >
<ContextMenu.Items>
<MenuItem Command="ApplicationCommands.Open"
CommandTarget="{Binding Path=PlacementTarget,RelativeSource={RelativeSource AncestorType={x:Type ContextMenu}}}"/>
</ContextMenu.Items>
</ContextMenu>
</Window.ContextMenu>
Adel Hazzah
Points
2860