2014-09-03 4 views
0

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

<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}" /> 

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

ответ

1

двумя способами:

  1. набор GridView-х IsReadOnly = true и чем набор GridView-х MouseDoubleClick Событие:

    private void dg1_MouseDoubleClick(object sender, MouseButtonEventArgs e) 
    { 
        Student s = dg1.SelectedItem as Student; 
        if (s != null) 
        { 
         MessageBox.Show(s.Name + " " + s.Age); 
        } 
    } 
    
  2. набор GridView-х PreviewMouseDoubleClick Событие:

    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; 
    } 
    
+1

это правильно? то на мой код за это должно быть, как это .. частное аннулируются (отправитель объекта, MouseButtonEventArgs е) grdProducts_MouseDoubleClick { } тат mousedouble нажмите следует рассматривать мое диалоговое окно. Также как в моем коде кнопки редактирования .. здесь: Продукт продукта = (отправитель как RadButton) .DataContext как продукт; ShowProductWindow (продукт); Извините, я не так хорош в логике. – iamkcdavid

+0

@Kim в этом случае отправитель RadGridView, поэтому вы не можете использовать его как 'sender как RadButton'. Я не знаю вашей логики, вы хотите показать selecteditem? – Rang

+1

Например, у меня уже есть данные для каждого заголовка datacolumn, и все эти данные будут в 1 строке справа, когда я его сохраню? то я дважды кликнул бы эту строку в сетке и покажу все данные в сетке в окне диалога. :) – iamkcdavid

0

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