2014-09-03 105 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

这是正确的吗?然后在我后面的代码应该是这样的.. 私人无效grdProducts_MouseDoubleClick(对象发件人,MouseButtonEventArgs E) { } 达mousedouble点击该看看我对话框。就像在我的编辑按钮代码..在这里: Product product =(发件人为RadButton).DataContext为Product; ShowProductWindow(product); 对不起,我没有那么好的逻辑.. – iamkcdavid 2014-09-03 08:27:29

+0

@Kim在这个事件中,发件人是RadGridView,所以你不能像发件人那样使用它作为RadButton。我不知道你的逻辑,你想显示selecteditem? – Rang 2014-09-03 08:42:41

+1

例如,我已经有每个datacolumn标题上的数据,并且当我保存它时,所有这些数据都将在1行中。那么我将双击网格上的那一行,并将网格上的所有数据显示到对话窗口。 :) – iamkcdavid 2014-09-03 08:56:27

0

如果您使用MVVM,您可能更愿意附加一个ICommand作为参数,该ICommand将传递已点击的行的DataContext。