简体   繁体   English

C#WPF DataGrid行MouseOver事件

[英]C# WPF DataGrid row MouseOver event

I have a datagrid on my wpf and inside it is created tow button and I'd like to show then only when the mouse is over the datagrid I bealieve for me to make it I'll need to add an Event to mouse over on the rows of this grid bellow is my DataGrid code 我在wpf上有一个数据网格,并在其中创建了拖曳按钮,仅当鼠标悬停在数据网格上时,我才想显示该数据网格,因此我需要为它添加一个Event网格下面的行是我的DataGrid代码

<DataGrid Grid.Row="1" GridLinesVisibility="None" AlternationCount="2"  HorizontalAlignment="Left" Height="auto" VerticalAlignment="Stretch" BorderThickness="0" Name="dgUsers"  ItemsSource="{Binding NotasSincronizadas}" Margin="0 0 0 0"
                            ScrollViewer.CanContentScroll="True"

                            ScrollViewer.VerticalScrollBarVisibility="Auto"
                            ScrollViewer.HorizontalScrollBarVisibility="Hidden"  
                                    >
                        <DataGrid.Resources>
                            <Style TargetType="{x:Type DataGridRow}">

                            <Style.Triggers>
                                <MultiTrigger>
                                    <MultiTrigger.Conditions>
                                        <Condition Property="local:WaterMarkTextHelperl.HasText" Value="False"/>
                                        <Condition Property="IsFocused" Value="True"/>
                                    </MultiTrigger.Conditions>
                                </MultiTrigger>
                            </MultiTrigger>
                        </DataGrid.Resources>

                        <DataGrid.Columns>
                            <DataGridCheckBoxColumn x:Name="col0" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}">
                                <DataGridCheckBoxColumn.HeaderTemplate>
                                    <DataTemplate>
                                        <CheckBox Name="chkSelectAll" ></CheckBox>
                                    </DataTemplate>
                                </DataGridCheckBoxColumn.HeaderTemplate>
                            </DataGridCheckBoxColumn>
                            <DataGridTemplateColumn Width="100" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}">
                                <DataGridTemplateColumn.HeaderTemplate>
                                    <DataTemplate>
                                        <Label Width="100" HorizontalContentAlignment="Center">NÚMERO</Label>
                                    </DataTemplate>
                                </DataGridTemplateColumn.HeaderTemplate>
                                <DataGridTemplateColumn.CellTemplate >
                                    <DataTemplate>
                                        <Grid Width="100">
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="50*"></ColumnDefinition>
                                                <ColumnDefinition Width="50*" x:Name="columBtAuto"></ColumnDefinition>
                                            </Grid.ColumnDefinitions>
                                            <Label Grid.Column="0"  Content="{Binding Path=CNS_NUMERO_NOTA}"></Label>
                                            <Grid Grid.Column="1" Width="50" Height="20">
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="*"></ColumnDefinition>
                                                    <ColumnDefinition Width="*"></ColumnDefinition>
                                                </Grid.ColumnDefinitions>
                                                <Button ToolTip="Manifestar" Grid.Column="0" Tag="{Binding Path=CNS_NUMERO_NOTA}" Style="{StaticResource buttonTransparent}">
                                                    <fa:ImageAwesome Icon="File" Width="12"></fa:ImageAwesome>
                                                </Button>
                                                <Button ToolTip="Imprimir" Grid.Column="1" Tag="{Binding Path=CNS_NUMERO_NOTA}" Style="{StaticResource buttonTransparent}">
                                                    <fa:ImageAwesome Icon="Print" Width="12"></fa:ImageAwesome>
                                                </Button>
                                            </Grid>
                                        </Grid>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTextColumn x:Name="br_numero" Header="NÚMERO" Width="100" Binding="{Binding CNS_NUMERO_NOTA}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" />
                            <DataGridTextColumn x:Name="br_serie" Header="SERIE" Width="80" Binding="{Binding CNS_SERIE}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" ></DataGridTextColumn>
                            <DataGridTextColumn x:Name="br_data_de_emissao" Header="DATA" Width="120" Binding ="{Binding Path=CNS_DATA_EMISSAO, StringFormat=dd-MM-yyyy}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}"></DataGridTextColumn>
                            <DataGridTextColumn x:Name="br_cnpj" Width="150" Header="CNPJ" Binding ="{Binding Path=CNS_CNPJ, StringFormat={}{0:##\###\###\/####-##}}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" />
                            <DataGridTextColumn x:Name="br_empresa_nome" Width="400" Header="EMPRESA" Binding ="{Binding CNS_NOME_FANTASIA}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" />
                            <DataGridTextColumn x:Name="br_valor" Width="90" Header="VALOR" Binding ="{Binding Path=CNS_VALOR_TOTAL, StringFormat={}{0:#.##}}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" />
                            <DataGridTextColumn x:Name="br_chave_de_acesso" Width="350" Header="CHAVE DE ACESSO" Binding ="{Binding Path=CNS_VALOR_TOTAL, StringFormat={}{0:#.##}}" HeaderStyle="{StaticResource ColumnHeaderGripperStyle}" />
                        </DataGrid.Columns>                    
                    </DataGrid>

Is there some way to put these events in the row ? 有什么办法可以将这些事件放在行中吗?

I am trying to use this code 我正在尝试使用此代码

<Style TargetType="{x:Type DataGridRow}">
    <MultiTrigger>
        <MultiTrigger.Conditions>
            <Condition Property="local:HideShow.Somefunction" Value="False"/>
            <Condition Property="IsFocused" Value="True"/>
        </MultiTrigger.Conditions>
    </MultiTrigger>
</Style>

But it didn't work as well 但是效果不佳

I finally realized how to do that Jus need to use EventSetter instead of triggers 我终于意识到Jus需要使用EventSetter而不是触发器来执行的操作

as the code bellow 如下面的代码

<EventSetter Event="MouseEnter" Handler="Row_MouseEnter"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM