小编And*_* H.的帖子

单击未在未选择行中的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>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,DataGridTemplateColumn如果未选中其行,则该按钮不会触发click事件.所以我必须两次单击一个按钮,一次选择它的行然后再提高click事件.我读过有关复选框列的类似问题,但显然建议使用模板列.我测试使用按钮的PreviewMouseDown-Event,它有效,但不是我想要的,因为那时按钮不遵循其通常的grpahical点击行为.

我在这里错过了什么?无论是否选择了行,如何只需单击一次即可获得该单击事件?

c# wpf wpfdatagrid

6
推荐指数
1
解决办法
7116
查看次数

标签 统计

c# ×1

wpf ×1

wpfdatagrid ×1