Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Linq绑定到Datagridtextcolumn_C#_Wpf_Linq_Linq To Sql - Fatal编程技术网

C# 将Linq绑定到Datagridtextcolumn

C# 将Linq绑定到Datagridtextcolumn,c#,wpf,linq,linq-to-sql,C#,Wpf,Linq,Linq To Sql,我想从Linq查询向DatagridTextcolumn添加值 我所尝试的: DataGridTextColumn test = new DataGridTextColumn(); test.Binding = new Binding("test"); dgServer.Columns.Add(test); dgServer.Items.Add(new Person() { Status = Convert.ToBoolean(from a in db.Persons

我想从Linq查询向DatagridTextcolumn添加值

我所尝试的:

DataGridTextColumn test = new DataGridTextColumn();
test.Binding = new Binding("test");
dgServer.Columns.Add(test);

dgServer.Items.Add(new Person()
{
  Status = Convert.ToBoolean(from a in db.Persons
          from d in db.PersonDetails
          where a.pID == d.pDID && a.State == "Active" 
          select a)
});
XAML


我对上述代码有一个例外,即

无法将“System.Data.Objects.ObjectQuery”1类型的对象强制转换为“System.IConvertible”类型

如何绑定到从LINQ到SQL的
DatagridTextcolumn
绑定


请帮助

这是有问题的代码-

Status = Convert.ToBoolean(from a in db.Persons
          from d in db.PersonDetails
          where a.pID == d.pDID && a.State == "Active" 
          select a)

内部的查询将返回Person类型的
IEnumerable
,您正试图将其转换为
Boolean
,这显然无法编译,因为没有
IEnumerable
Boolean
的隐式转换,问题是您试图转换的是linq查询,而不是该查询的结果。这个问题源于Linq的延迟执行模型。尝试将“FirstOrDefault()”方法添加到ToBoolean调用的参数中:

Status = Convert.ToBoolean((from a in db.Persons
      from d in db.PersonDetails
      where a.pID == d.pDID && a.State == "Active" 
      select a).FirstOrDefault())

Rohit也有一个很好的观点-您需要确保能够从Person类型转换为Boolean类型

感谢更新,但是如何将其绑定到DatagridTextcolumn绑定属性?@Buba1947记住这个答案将是
,因此您忘记了路径。
Status = Convert.ToBoolean((from a in db.Persons
      from d in db.PersonDetails
      where a.pID == d.pDID && a.State == "Active" 
      select a).FirstOrDefault())