La lumière MVVM a été un plaisir d'apprendre, mais je suis coincé ici. Le problème est le déclenchement d'un événement.MVVM-Light, déclencher des événements à partir d'un bouton à l'intérieur d'un modèle de colonne de la grille de données
Dans le code ci-dessous, un bouton le travail et déclenche des événements. L'autre bouton ne marche pas. Aucune erreur de liaison n'est signalée dans la sortie. Y a-t-il quelque chose d'évident qui me manque?
<Grid x:Name="LayoutRoot">...
<StackPanel>
<Button Content="THIS BUTTON WORKS">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<Command:EventToCommand Command="{Binding DataContext.HandleAddQuestionActionCommand, ElementName=LayoutRoot, Mode=OneWay}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
<sdk1:DataGrid ItemsSource="{Binding QuestionActions}" AutoGenerateColumns="False" >
<sdk1:DataGrid.Columns>
<sdk1:DataGridTextColumn Binding="{Binding Answer.Name}" Header="Answer"/>
<sdk1:DataGridTemplateColumn Header="Edit">
<sdk1:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="THIS BUTTON DONT WORK" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<Command:EventToCommand Command="{Binding DataContext.HandleEditQuestionActionCommand, ElementName=LayoutRoot, Mode=OneWay}" PassEventArgsToCommand="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</DataTemplate>
</sdk1:DataGridTemplateColumn.CellTemplate>
</sdk1:DataGridTemplateColumn>
</sdk1:DataGrid.Columns>
</sdk1:DataGrid>
</StackPanel>
Code ViewModel:
public RelayCommand<RoutedEventArgs> HandleAddQuestionActionCommand {
get; private set;
}
public RelayCommand<RoutedEventArgs> HandleEditQuestionActionCommand {
get; private set;
}
HandleAddQuestionActionCommand = new RelayCommand<RoutedEventArgs>(e =>{...});
HandleEditQuestionActionCommand = new RelayCommand<RoutedEventArgs>(e =>{...});
C'est exactement ce dont j'avais besoin! Merci, et avec cela, MVVM-lumière continue d'être une approche simple et élégante à Silverlight dans tous les scénarios. Merci encore – nachonachoman
Est-ce que cela fonctionne aussi bien dans Silverlight ou seulement dans WPF? – Radhi
Cet exemple a été créé dans Silverlight, pas WPF. –