2011-02-01 1 views
0

J'ai rencontré un problème lors de l'utilisation de MVVM Lite EventToCommand dans un composant case à cocher d'une grille de données. EventToCommand ne fonctionne pas, l'action ne se déclenche jamais.Utilisation de EventToCommand sur un composant dans une grille de données

Non seulement à un composant de case à cocher, j'ai essayé d'utiliser EventToComment à un autre composant à l'intérieur d'un DataGrid. Et ça ne marche pas aussi.

Est-il possible d'utiliser EventToCommand sur un composant dans une grille de données? si c'est possible, alors comment l'implémenter?

est le code ici ..

XAML:

<sdk:DataGrid Name="dgSubmitProposal" 
         ItemsSource="{Binding Path=PeopleVM}" 
         SelectedItem="{Binding SelectedRateChange, Mode=TwoWay}" 
         FrozenColumnCount="{Binding FrozenColumnCount}" 
         TabNavigation="Cycle" 
         AutoGenerateColumns="False" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Stretch" 
         VirtualizingStackPanel.VirtualizationMode="Standard" 
         ClipboardCopyMode="None"> 
      <sdk:DataGrid.Columns> 
       <sdk:DataGridTemplateColumn Header="Select"> 
        <sdk:DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <CheckBox Name="chbSelect" IsChecked="{Binding IsChecked, Mode=TwoWay}"> 
           <i:Interaction.Triggers> 
            <i:EventTrigger EventName="Click"> 
             <cmd:EventToCommand Command="{Binding RowCheckCommand}"/> 
            </i:EventTrigger> 
           </i:Interaction.Triggers> 
          </CheckBox> 
         </DataTemplate> 
        </sdk:DataGridTemplateColumn.CellTemplate> 
       </sdk:DataGridTemplateColumn> 
       <sdk:DataGridTextColumn Header="Name" Binding="{Binding Name, Mode=TwoWay}" IsReadOnly="True" /> 
       <sdk:DataGridTextColumn Header="Age" Binding="{Binding Age, Mode=TwoWay}" IsReadOnly="True"/> 
      </sdk:DataGrid.Columns> 
     </sdk:DataGrid> 

Voir modèle Classe:

public RelayCommand RowCheckCommand 
{ 
    get; 
    private set; 
} 
public MainViewModel() 
{ 
    RowCheckCommand = new RelayCommand(() => MessageBox.Show("A checkbox in a datagrid Clicked!")); 
} 

Répondre

0
public MainViewModel() 
{ 
    RelayCommand = new RelayCommand(() => MessageBox.Show("A checkbox in a datagrid Clicked!")); 
} 

dans ce code d'erreur. Vous créez RelayCommand pour la propriété: RelayCommand. Vous devriez le faire pour RowCheckCommand propriété

+0

désolé mon erreur, il suppose être "RowCheckCommand". Ça ne marche pas – micromonster

Questions connexes