C# 将栅格绑定到tap命令
我有一个C# 将栅格绑定到tap命令,c#,mvvm,windows-phone-8,mvvm-light,C#,Mvvm,Windows Phone 8,Mvvm Light,我有一个网格,其中包含一些对象,其中一个是按钮。 按钮有自己的命令绑定,一切正常 我已经为网格的点击事件添加了一个绑定,但是现在它的命令会被执行,即使我点击按钮 因为我使用的是MVVM Light,所以我可以使用PassEventArgsToCommand在代码中获取GestureEventArgs,并在实际执行任何操作之前检查事件源 问题是这个参数在我的方法中总是null,所以我不能对它做任何事情 是否有任何方法将我的按钮排除在执行此命令之外? 类似于CanExecute函数的东西,该函数为按
网格
,其中包含一些对象,其中一个是按钮
。
按钮有自己的命令
绑定,一切正常
我已经为网格的点击事件添加了一个绑定,但是现在它的命令
会被执行,即使我点击按钮
因为我使用的是MVVM Light,所以我可以使用PassEventArgsToCommand
在代码中获取GestureEventArgs
,并在实际执行任何操作之前检查事件源
问题是这个参数在我的方法中总是null
,所以我不能对它做任何事情
是否有任何方法将我的按钮
排除在执行此命令
之外?
类似于CanExecute
函数的东西,该函数为按钮
类型返回false
编辑:
网格的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>
能否显示网格及其子对象的xaml?我已经添加了请求的xaml。能否解释为什么要捕获网格的点击事件。我在焦点视觉事件和按钮方面也遇到了类似的问题,但这取决于您的场景,如果它能正常工作,基本上我想处理点击LongListSelector
项