Je lance un simple projet MVVM et je suis tombé au premier obstacle. Je lie mes commandes en utilisant l’approche Josh Smiths Relay Command.
Le problème est que le bouton n’est pas contraignant lorsqu’il se trouve dans le ResourceDictionary. Si je déplace le code (tel quel) dans mon MainWindow.xaml, le code s’exécutera comme vous le souhaitez.
Ceci est mon MainWindow.xaml
Et le dictionnaire de ressources
Je ne peux que supposer que lors de la liaison dans le ResourceDictionary, il ne trouve pas le ViewModel (bien que je ne sache pas pourquoi je pense cela). Je pense que c’est en essayant de fixer un niveau supplémentaire …
Quoi qu’il en soit, quelqu’un peut-il expliquer pourquoi son exécution ne se fait pas à partir du dictionnaire de ressources, s’il vous plaît.
Ce problème ne semble pas avoir grand chose à voir avec le ResourceDictionary que de faire passer le parent DataContext
au DataTemplate
Si vous copiez le Style
et le mettez dans Grid.Resources
et commentez le dictionnaire de ressources, le même comportement peut être observé. Les erreurs de reliure devraient également apparaître
System.Windows.Data Error: 40 : BindingExpression path error: 'AddCommand' property not found on 'object' ''Ssortingng'
Le correctif consiste à faire passer le DataContext
.
le même problème s’applique à ContentTemplate
mais le Template
fonctionne bien (il utilise un ControlTemplate
)