Не срабатывает событие Click в WPF Datagrid в невыбранной строке

У меня есть DataGrid (WPF 4) следующего вида:

<DataGrid   Margin="0,0,0,5" VerticalAlignment="Top" Height="192" 
                            BorderBrush="#aaa" Background="White" 
                            HorizontalAlignment="Left" 
                            ItemsSource="{Binding Namen, Mode=OneWay}" 
                            ScrollViewer.VerticalScrollBarVisibility="Visible"
                            AutoGenerateColumns="False" 
                            ColumnHeaderHeight="24" 
                            SelectionChanged="DataGridAuslaendischeAlteNamen_SelectionChanged">
                    <DataGrid.Columns>
                        <DataGridTextColumn Width="*" Header="Namenseintrag" Binding="{Binding DisplayName, Mode=OneWay}" />
                        <DataGridTextColumn Width="75" Header="gültig von" Binding="{Binding GueltigAb, StringFormat=d, Mode=OneWay}" />
                        <DataGridTextColumn Width="75" Header="gültig bis" Binding="{Binding GueltigBis, StringFormat=d., Mode=OneWay}" />
                        <DataGridTemplateColumn Width="20" IsReadOnly="True">
                            <DataGridTemplateColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Style="{DynamicResource CaratRemoveButton}" 
                                            Click="Button_Click" CommandParameter="{Binding}" 
                                            PreviewMouseDown="Button_PreviewMouseDown" 
                                            />
                                </DataTemplate>
                            </DataGridTemplateColumn.CellTemplate>
                        </DataGridTemplateColumn>
                </DataGrid.Columns>
                </DataGrid>

Проблема, с которой я столкнулся, заключается в том, что кнопка DataGridTemplateColumn не срабатывает, если ее строка не выбрана. Поэтому мне приходится нажимать на кнопку дважды, один раз, чтобы выбрать ее строку, а затем, чтобы вызвать событие click. Я читал о похожих проблемах с колонками-чекбоксами, но там, очевидно, предлагалось использовать колонку-шаблон. Я пробовал использовать событие PreviewMouseDown-Event кнопки, что работает, но это не то, что я хочу, поскольку тогда кнопка не следует своему обычному поведению при нажатии.

Что я здесь упускаю? Как я могу получить событие щелчка, просто щелкнув один раз, независимо от того, был ли выбран ряд или нет?

6
задан David 1 March 2012 в 15:06
поделиться