wpf DataGrid 双击某行是获取当前行内某列的值

言月秋 2015-12-19 04:12:21
前端:
<DataGrid Name="datagrid1" ItemsSource="{Binding}" AutoGenerateColumns="False" Margin="0,62,0,-15" MouseDoubleClick="datagrid_MouseDoubleClick" >
<DataGrid.Columns>
<DataGridTextColumn Header="学号" Width="105" Binding="{Binding studentno}" />
<DataGridTextColumn Header="姓名" Width="105" Binding="{Binding name}" />
</DataGrid.Columns>
</DataGrid>
后端:
private void datagrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{


}
前端已经能查出数据来了,MouseDoubleClick事件中怎么获得选中行studentno的值?
...全文
1034 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
阴到笑 2019-04-18
  • 打赏
  • 举报
回复
引用 6 楼 fax928 的回复:
我是刚入门的菜鸟,不知道对不对。。。我也是网上查的哈。不知道有没帮助。 //dataGrid 单元格结束编辑 private void DataGrid_TuShuChaXun_XiuGai_ShanChu_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string newValue = (e.EditingElement as TextBox).Text;//编辑完单元格里的值 } 测试下来可以用。(是编辑dataGrid某单元格)
------------------------------------------ 2015年的问题,你现在还回答,兄弟,不错,加油!
fax928 2019-04-05
  • 打赏
  • 举报
回复
//双击DataGrid单元格 private void DataGrid_TuShuChaXun_XiuGai_ShanChu_MouseDoubleClick(object sender, MouseButtonEventArgs e) { suoXuanHang = (DataRowView)this.dataGrid_TuShuChaXun_XiuGai_ShanChu_ShuBengXingXi.SelectedItem;//DataRowView var cell = this.dataGrid_TuShuChaXun_XiuGai_ShanChu_ShuBengXingXi.CurrentCell;//所选单元格 baoCunLieHao = cell.Column.DisplayIndex;//保存列号 MessageBox.Show(suoXuanHang.Row[baoCunLieHao].ToString());//显示 } 试下呢。
fax928 2019-04-05
  • 打赏
  • 举报
回复
我是刚入门的菜鸟,不知道对不对。。。我也是网上查的哈。不知道有没帮助。 //dataGrid 单元格结束编辑 private void DataGrid_TuShuChaXun_XiuGai_ShanChu_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) { string newValue = (e.EditingElement as TextBox).Text;//编辑完单元格里的值 } 测试下来可以用。(是编辑dataGrid某单元格)
本拉灯 2015-12-22
  • 打赏
  • 举报
回复



        private void gridOrder_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (sender != null)
            {
                DataGrid grid = sender as DataGrid;
                if (grid != null && grid.SelectedItems != null && grid.SelectedItems.Count == 1)
                {
                    MealOrder info = grid.SelectedItem as MealOrder; <--这里改成你自己的对象
                   
                }
            }
        }

言月秋 2015-12-22
  • 打赏
  • 举报
回复
可能由于绑定的是实体数据模型, var query = from t in DBConnection.tb_studentinfo select t; this.datagrid1.ItemsSource = query.ToList(); 像这种获取 string userName = ((((DataGrid)sender).SelectedItem) as DataRowView)["studentno"].ToString(); 根本获取不到,会的大神说下怎么实现。
言月秋 2015-12-21
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
使用Binding模式是对的。最起码不会使用DataRowView来提取数据。 通过 获取dg的SelectedItem属性,再转成 相应的绑定类,就可以获取对应的列(类的属性)的值了。
版主大人你的话太抽象了,能懂个大概却不知道程序该怎么写。
言月秋 2015-12-19
  • 打赏
  • 举报
回复
引用 1 楼 duanzi_peng 的回复:
使用Binding模式是对的。最起码不会使用DataRowView来提取数据。 通过 获取dg的SelectedItem属性,再转成 相应的绑定类,就可以获取对应的列(类的属性)的值了。
你有好点的例子没,主要想实现获得某个值,带到另一个页面查出其他数据。
exception92 2015-12-19
  • 打赏
  • 举报
回复
使用Binding模式是对的。最起码不会使用DataRowView来提取数据。 通过 获取dg的SelectedItem属性,再转成 相应的绑定类,就可以获取对应的列(类的属性)的值了。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧