Триггер события WPF DatagridCell

Я хочу использовать триггер события ячейки Datagrid. Я хочу сказать, что хочу написать что-то вроде этого

**<EventTrigger EventName="MouseEnter">**

а затем вызовите эту функцию из XAML:

void Cell_MouseEnter(отправитель объекта, MouseEventArgs e)

Как бы я это сделал:

у меня есть это в XAML

    <ctrls:RhinoDataGrid x:Name="dataGrid" Grid.Row="1" Margin="5" ItemsSource="{Binding Model.CurrentDataTable}"   
                             Style="{StaticResource RhinoDataGridBaseStyle}" IsReadOnly="{Binding Model.IsLinkFile}"
                             SelectedValue="{Binding Model.CurrentDataRow}" SelectedValuePath="Row"                                 SetAutomappingOnOff="{Binding IsAutoMap, Mode=TwoWay}" >
            </ctrls:RhinoDataGrid>


     <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="BorderBrush" Value="Transparent"></Setter>
            <Setter Property="BorderThickness" Value="2"></Setter>
            <Style.Triggers>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Foreground" Value="White"></Setter>
                    <Setter Property="BorderBrush" Value="{DynamicResource ActiveItemBrush}"></Setter>
                    <Setter Property="BorderThickness" Value="2"></Setter>
                </Trigger>
            </Style.Triggers>            

Пожалуйста, помогите

Спасибо Ди


person Dee Choksi    schedule 14.05.2012    source источник


Ответы (3)


Вместо этого проверьте «IsMouseOver». Я предполагаю, что "RhinoDataGrid" наследуется от нашего известного DataGrid WPF.

person NestorArturo    schedule 14.05.2012
comment
IsMouseOver - работает только для стиля в XAML. Мне нужно вызвать это событие кода программной части, чтобы я мог получить объект Cell - person Dee Choksi; 14.05.2012
comment
void Cell_MouseEnter (отправитель объекта, MouseEventArgs e) { } Это должно вызвать это - person Dee Choksi; 14.05.2012

Вы путаете EventSetter с EventTrigger....

  <Style TargetType="{x:Type DataGridCell}"> 
       <EventSetter Event="MouseEnter" Handler="Cell_MouseEnter"/>
  </Style> 
person WPF-it    schedule 15.05.2012
comment
У меня ошибка: событие «MouseEnter» не может быть указано в теге Target в стиле. Вместо этого используйте EventSetter. Есть ли что-то особенное в моем datagrid. Я проверяю онлайн, и у всех это работает - person Dee Choksi; 15.05.2012

person    schedule
comment
Событие MouseEnter нельзя указать в теге Target в стиле. Вместо этого используйте EventSetter. - person Dee Choksi; 14.05.2012
comment
Я запустил приведенный выше код перед публикацией — он не только скомпилировался, но и попал в точку останова в Cell_MouseEnter(). - person denis morozov; 14.05.2012