2012-07-05 2 views
0

Я хочу подписаться на мышь, ввести и оставить события DataGridRow.DataGrid - Мышь введите + оставить события строки

Мой XAML для DataGrid выглядит, как это в данный момент:

<toolkit:DataGrid ItemsSource="{Binding DisplayedSearchResults}" 
       caliburn:Message.Attach="[Event MouseDoubleClick] = [OpenDocument()]" 
       SelectedItem="{Binding SelectedRow, Mode=TwoWay}" Margin="7" 
       AutoGeneratingColumn="DataGrid_AutoGeneratingColumn" 
       IsReadOnly="True" Grid.Row="0" 
       Sorting="ResultsDataGrid_Sort"> 
    <toolkit:DataGrid.Resources> 
     <Style TargetType="Button"></Style> 
    </toolkit:DataGrid.Resources> 
</toolkit:DataGrid> 

Как я могу это сделать с помощью Caliburn, если это возможно, но код-позади, если нет?

+0

Вы можете установить события в DataGrid.RowStyle , – LPL

ответ

0

Я заканчивал закреплять в коде-за:

MyView.xaml.cs:

public partial class MyView : UserControl 
{ 

    public SearchResultsView() 
    { 
     InitializeComponent(); 
     SearchResultsGrid.LoadingRow += DataGrid_PreparingRow; 
    }   

    public void DataGrid_PreparingRow(object sender, DataGridRowEventArgs args) 
    { 
     args.Row.MouseEnter += Row_MouseEnter; 
     args.Row.MouseLeave += Row_MouseLeave; 
    } 

    public void Row_MouseEnter(object sender, MouseEventArgs args) 
    { 
     // do some stuff 
    } 

    public void Row_MouseLeave(object sender, MouseEventArgs args) 
    { 
     // do some stuff 
    } 
} 

MyView.xaml:

<UserControl x:Class="MyView" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    
      xmlns:toolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 

     <toolkit:DataGrid Name="SearchResultsGrid" /> 
    </Grid> 
</UserControl> 
Смежные вопросы