将网格绑定到tap命令

时间:2013-09-27 16:46:12

标签: c# mvvm windows-phone-8 mvvm-light

我有一个Grid,其中包含一些对象,其中一个是Button。 该按钮有自己的Command绑定,一切都很好。

我已经为Grid的点击事件添加了绑定,但现在即使我点击Command,其Button也会被执行。

由于我正在使用MVVM Light,我可以使用PassEventArgsToCommand在我的代码中获取GestureEventArgs并在实际执行任何操作之前检查事件的来源。

问题是我的方法中此参数始终为null,因此我无法对其执行任何操作。

有没有办法排除我的Button执行此Command? 像CanExecute函数那样为Button类型返回false。

编辑:

Grid

的XAML代码
<Grid Height="100" Margin="15,0,15,17" Tag="{Binding ServiceId}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Tap">                        
            <cmd:EventToCommand Command="{Binding Path=DetailsCommand}" PassEventArgsToCommand="True"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition/>
        <RowDefinition/>
    </Grid.RowDefinitions>
    <Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Source="{Binding Poster}" Stretch="UniformToFill" Height="100" Width="100"/>
    <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Title}" HorizontalAlignment="Center" />
    <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Directors[0]}" HorizontalAlignment="Center" />
    <ListBox Grid.Row="2" Grid.Column="1" ItemsSource="{Binding Genres}" HorizontalAlignment="Center"/>
    <TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding Year}" HorizontalAlignment="Center" />
    <Button Grid.Row="1" Grid.Column="2" Grid.RowSpan="2" BorderThickness="0" Style="{StaticResource StarButton}" Command="{Binding SelectCommand}"/>
</Grid>

0 个答案:

没有答案