在DataGridView的所选行后面检索Linq实体的合适/正确方法是什么?
我在表单Load事件中填充这样的DataGridView:

this.Database = new MyAppDataContext();
var userList = from c in this.Database.Users
                       orderby c.LastName
                       select c;
        this.gridUserList.DataSource = userList;


然后,在表单的DoubleClick事件中,我这样做:

        int userPK = Convert.ToInt32(this.gridUserList.CurrentRow.Cells["colUserPK"].Value);
        var user = (from c in this.Database.Users
                    where c.UserPK == userPK select c).First() ;
        //Do something with user object


似乎应该有一种更优雅的方式来获取被双击的用户行。

最佳答案

这是我找到的最佳选择:

var selectedUser = (User)this.gridUserList.CurrentRow.DataBoundItem;


如果使用BindingSource,则另一个选择是:

var selectedUser = (User)this.userBindingSource.Current;

关于c# - 使用Linq To SQL从DataGridView中获取所选行后面的实体,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3199279/

10-14 20:34
查看更多