Halfie44
Halfie44

Reputation: 33

DatatGrid Itemsource using Linq i cant select any record except first

Hey im currently having problems with WPF Datagrid using linq, currently im displaying a group of records from three tables into a datagrid, this works fine and i retrieve all the relevant information correctly.

However when i load the datagrid and i click on for example the 3rd record it selects the first record and i cant change it. I can use Ctrl + click to deselect the first record.

I dont know why its doing this but ive narrowed it down to my linq query, ive tried to write a more complex linq query using joins etc, it retrieves the same data but i still have this problem :/ any ideas would be good...thank you in advance

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)
                                });

Upvotes: 0

Views: 465

Answers (3)

Oscar
Oscar

Reputation: 11

I had something similar like you, but to me happen, that when i add rows with the same data information, the selection seems to be crazy. what i did was not give a linq query as a itemsource else put all the information into a List and next pass it to the item source.

Upvotes: 1

Manish Basantani
Manish Basantani

Reputation: 17509

"ive tried to write a more complex linq query using joins etc,"

That's never going to help.

Write a program that is human readable (and not just computer readable). And I can bet, you will find the problem and the solution in that iteration.

Upvotes: 0

paparazzo
paparazzo

Reputation: 45106

Try a ToList() at the end of the query.

Upvotes: 1

Related Questions