Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.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的DatatGrid Itemsource无法选择除第一条记录之外的任何记录_C#_Wpf_Linq_Datagrid_Itemsource - Fatal编程技术网

C# 使用Linq的DatatGrid Itemsource无法选择除第一条记录之外的任何记录

C# 使用Linq的DatatGrid Itemsource无法选择除第一条记录之外的任何记录,c#,wpf,linq,datagrid,itemsource,C#,Wpf,Linq,Datagrid,Itemsource,嘿,我目前在使用linq的WPF Datagrid方面遇到了问题,目前我正在将三个表中的一组记录显示到一个Datagrid中,这工作正常,我正确地检索了所有相关信息 但是,当我加载datagrid并单击例如第三条记录时,它会选择第一条记录,我无法更改它。我可以使用Ctrl+单击来取消选择第一条记录 我不知道它为什么这样做,但我把它缩小到我的linq查询,我尝试使用连接等编写更复杂的linq查询,它检索相同的数据,但我仍然有这个问题:/任何想法都会很好…提前谢谢 apptGrid.ItemsSou

嘿,我目前在使用linq的WPF Datagrid方面遇到了问题,目前我正在将三个表中的一组记录显示到一个Datagrid中,这工作正常,我正确地检索了所有相关信息

但是,当我加载datagrid并单击例如第三条记录时,它会选择第一条记录,我无法更改它。我可以使用Ctrl+单击来取消选择第一条记录

我不知道它为什么这样做,但我把它缩小到我的linq查询,我尝试使用连接等编写更复杂的linq查询,它检索相同的数据,但我仍然有这个问题:/任何想法都会很好…提前谢谢

apptGrid.ItemsSource = (from o in DbList.OrderedAppointmentList()
                                from s in DbList.StaffList()
                                from c in DbList.ClientList()
                                where o.Appointment_Date == apptDatePicker.SelectedDate.Value
                                && o.Staff_Staff_ID == s.Staff_ID && o.Client_Client_ID == c.Client_ID
                                select new
                                {
                                    o.Appointment_Date,
                                    o.Appointment_Time,
                                    o.Duration,
                                    StaffName =
                                        ((s.Middle_Name_s_ != null) ? s.First_Name + " " + s.Middle_Name_s_ + " " + s.Last_Name : s.First_Name + " " + s.Last_Name),
                                    ClientName =
                                   ((c.Middle_Name_s_ != null) ? c.First_Name + " " + c.Middle_Name_s_ + " " + c.Last_Name : c.First_Name + " " + c.Last_Name)
                                });
在查询结束时尝试使用
ToList()

“我尝试使用连接等编写更复杂的linq查询。”

那是没有用的


编写一个人类可读(而不仅仅是计算机可读)的程序。我敢打赌,你会在那次迭代中找到问题和解决方案。

我也有类似的想法,但对我来说,当我添加具有相同数据信息的行时,选择似乎很疯狂。我所做的不是将linq查询作为itemsource提供,而是将所有信息放入一个列表,然后将其传递给itemsource

我怀疑这里的问题出在查询上;而datagrid的工作原理与使用ToList()shot时应有的结果相同。请尝试apptGrid.ItemsSource.Items.Count.ToString()以获取计数。您能解释一下吗?我说我用一个更复杂的linq做了一个,看看这是不是我获取数据的方式,但不是,我想我可能是在覆盖soemthing