首页 > 解决方案 > 在 WPF 中按下 DataGrid 中的一行时执行一个函数?

问题描述

我正在尝试在我的 DataGrid 上实现一个功能,当按下一行时执行一个函数。我试过使用 DataGridCell.Selected,这个问题是它为网格的每一列执行“n”次,我希望这个方法只执行一次。我也尝试过使用 DataGridRow.Selected 但它不起作用。关于我该怎么做的任何想法?

编辑:该功能只需在行上单击一次即可执行,这就是我不使用 MouseDoubleClick 的原因

XAML

 <Grid>
    <StackPanel  Background="#373A6B" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="4">
        <DataGrid x:Name="ListNameTest" AutoGenerateColumns="False" Background="Transparent" BorderBrush="Transparent" CanUserAddRows="False" 
                           GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="#CBC3C3" 
                  Margin="0" Padding="-5,0,0,0" Height="400" Width="550" DataGridCell.Selected="DataGridCell_Selected"
                          IsEnabled="True" >
            <DataGrid.Resources>
                <ResourceDictionary >
                    <Style x:Key="{x:Type DataGridCell}" TargetType="{x:Type DataGridCell}">
                        <Style.Triggers>
                            <Trigger Property="IsSelected" Value="True">
                                <Setter Property="Background" Value="#1F800C" />
                                <Setter Property="BorderBrush" Value="{x:Null}" />
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                    <Style TargetType="{x:Type DataGridRow}">
                        <Setter Property="Background" Value="{x:Null}" />
                        <Setter Property="BorderBrush" Value="{x:Null}" />
                    </Style>
                </ResourceDictionary>
            </DataGrid.Resources>

            <DataGrid.Columns>
                <DataGridTextColumn Header="uno" Binding="{Binding id}" IsReadOnly="True"  CanUserResize="False" Foreground="#FFF" FontSize="20">
                    <DataGridColumn.HeaderStyle>
                        <Style TargetType="DataGridColumnHeader">
                            <Setter Property="Background" Value="Transparent"/>
                            <Setter Property="Foreground" Value="#2ECBC6"/>
                            <Setter Property="FontWeight"  Value="Medium" />
                            <Setter Property="HorizontalAlignment" Value="Left" />
                            <Setter Property="HorizontalContentAlignment" Value="Center" />
                            <Setter Property="FontSize" Value="18"/>
                            <Setter Property="Margin" Value="15,0" />
                        </Style>
                    </DataGridColumn.HeaderStyle>
                    <DataGridTextColumn.ElementStyle>
                        <Style>
                            <Setter Property="FrameworkElement.Margin" Value="15,0"/>
                        </Style>
                    </DataGridTextColumn.ElementStyle>
                </DataGridTextColumn>

提前谢谢你:)

标签: c#wpfxamldatagridrow

解决方案


推荐阅读