ボタンを含むテンプレート列を持つ Silverlight のデータグリッドがあります。XAMLでは基本的にこのように見えます-
<sdk:DataGrid ItemsSource="{Binding Items}" SelectedItem="{Binding Selected, Mode=TwoWay}">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button HorizontalAlignment="Right" Click="btn_Click">
<StackPanel Orientation="Horizontal">
<Image Source="/image.png"/>
</StackPanel>
</Button>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<!-- Ten Other Columns -->
</sdk:DataGrid.Columns>
</sdk:DataGrid>
さて、このセットアップでは、そのボタンがクリックされるたびに btn_Click イベントが正常に発生します (行が選択されているかどうかに関係なく)。selectionchanged イベントをデータグリッドに追加するまではすべて問題ありません。XAML の最初の行は次のようになりました -
<sdk:DataGrid ItemsSource="{Binding Items}" SelectedItem="{Binding Selected, Mode=TwoWay}" SelectionChanged="dg_SelectionChanged">
現在、btn_Click イベントは、クリックされたボタンが現在選択されている行にある場合にのみ発生します。それ以外の場合、selectionchanged イベントのみが発生し、ボタンのクリックには至りません。あなたは明らかに選択された行を切り替えているので、selectionchangedイベントの発火は理解しています。しかし、私が理解していないのは、btn_Click がヒットしない理由です。これがなぜなのか、それを回避する方法について誰か考えがありますか?
前もって感謝します。