Двойной щелчок по всей строке в gridview

Я хочу щелкнуть по всей строке в моем виде сетки, и он покажет мне диалоговое окно. Это диалоговое окно содержит значения в самой моей сетке. Вот мой пример кода xaml..

<telerik:GridViewDataColumn Header="First Name" Width="*" DataMemberBinding="{Binding FirstName}" />
                <telerik:GridViewDataColumn Header="Last Name" Width="*" DataMemberBinding="{Binding LastName}" />
                <telerik:GridViewDataColumn Header="Middle Name" Width="*" DataMemberBinding="{Binding MiddleName}"  />
                <telerik:GridViewDataColumn Header="Registration Day" Width="*" DataMemberBinding="{Binding RegistrationDay, StringFormat={}{0:dd/MM/yyyy}}" />
                <telerik:GridViewDynamicHyperlinkColumn Header="Email" Width="*" DataMemberBinding="{Binding Email}" />
                <telerik:GridViewDataColumn Header="Password" Width="*" DataMemberBinding="{Binding Access}" />

эти значения также являются значениями в моем диалоговом окне. Я просто хочу сделать двойной щелчок на строке, вместо того, чтобы нажимать кнопку редактирования, которую я реализую.. Надеюсь, вы мне поможете...

2 ответа

Два пути:

  1. установить gridview's IsReadOnly = true и чем установить событие MouseDoubleClick gridview:

    private void dg1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        Student s = dg1.SelectedItem as Student;
        if (s != null)
        {
            MessageBox.Show(s.Name + " " +  s.Age);
        }
    }
    
  2. установить EventView PreviewMouseDoubleClick Event:

    private void dg1_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
        Student s = dg1.SelectedItem as Student;
        if (s != null)
        {
            MessageBox.Show(s.Name + " " + s.Age);
        }
    
        e.Handled = true;
    }
    

Если вы используете MVVM, вы, вероятно, предпочли бы присоединить ICommand, которому в качестве параметра будет передан DataContext строки, по которой был выполнен щелчок.

Другие вопросы по тегам