Grid
いくつかのオブジェクトを含む があり、そのうちの 1 つはですButton
。ボタンには独自のCommand
バインディングがあり、すべて問題ありません。
Grid
のタップ イベントにバインディングを追加しましたがCommand
、 をタップしても実行されるようになりましたButton
。
私は MVVM Light を使用しているので、実際に何かを行う前に、コード内でPassEventArgsToCommand
を取得してイベントのソースを確認するために使用する可能性があります。GestureEventArgs
問題は、このパラメーターが常にnull
メソッド内にあるため、何もできないことです。
Button
これを実行しないようにする方法はありますCommand
か? CanExecute
型に対して false を返す関数のようなものButton
。
編集:
の XAML コードGrid
<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>