2010-06-25 8 views
0

Existe-t-il un moyen d'ajouter un événement DoubleClickEvent à chaque ligne dans xaml plutôt que d'utiliser l'événement de la commande dataagrid?Ajouter EventToCommand à chaque ligne dans xaml

Quelque chose comme ça (ce code ne fonctionne pas):

<UserControl 
     xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
     xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras" 
     xmlns:xcdg="http://schemas.xceed.com/wpf/xaml/datagrid" > 
    <xcdg:UserControl.Resources> 
      <Style TargetType="xcdg:DataRow"> 
       <i:Interaction.Triggers> 
        <i:EventTrigger EventName="MouseDoubleClick"> 
         <cmd:EventToCommand Command="{Binding SelectCommand, Mode=Default}" CommandParameter="{Binding SelectedItem, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type xcdg:DataGridControl}}}" /> 
        </i:EventTrigger> 
       </i:Interaction.Triggers> 
      </Style> 
    </xcdg:UserControl.Resources> 
... 

Répondre

1

Utilisez un modèle au lieu d'un style. (Ceci suppose que le DataRow de xceed dataagr peut être modélisé.)

<UserControl ...> 
    <UserControl.Resources> 
     <ResourceDictionary> 
      <DataTemplate x:Key="DataTemplateKey"> 
       <Grid> 
        <i:Interaction.Triggers> 
         <i:EventTrigger EventName="MouseDoubleClick"> 
          <cmd:EventToCommand Command="{Binding SelectCommand}" /> 
         </i:EventTrigger> 
        </i:Interaction.Triggers> 
        <!-- put your row template here --> 
       </Grid> 
       <CheckBox Content="{Binding Path=ApplianceActionID, Converter={StaticResource LookupConverter}, ConverterParameter=ApplianceActionLookupValues}" 
          IsChecked="{Binding Path=IsSelected, Mode=TwoWay}" /> 
      </DataTemplate> 

     </ResourceDictionary> 
    </UserControl.Resources> 

    <!-- UI --> 

</UserControl> 
+0

Malheureusement ce n'est pas ... ou je n'ai pas pu savoir comment. – CodeWeasel

Questions connexes