Solved

WPF Master detail grids using LINQ

Posted on 2013-11-15
7
488 Views
Last Modified: 2016-02-10
Hi guys,

What is the easiest way to achieve my goal? Should I have 2 linq queries run when the program is launched and save the results in a public list and then assign a list to each of the grids? Then have a selected row change event acting as a filter to the child's list?

Hope that makes sense?

Thanks,
Dean.

p.s I should mention that these grids will be used to add, remove and edit data.
0
Comment
Question by:deanlee17
  • 4
  • 3
7 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 39652591
What if I just said, "Yes"...would that suffice?
0
 

Author Comment

by:deanlee17
ID: 39653193
Hi TheLearnedOne,

haha you could just say "Yes", is this the way you would done it?
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 39653355
If you are a cat lover, then I apologize for the statement, "there are many ways to skin a cat".  I assume that you are using ObservableCollection, and that you are binding to the grids dynamically in code.
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:deanlee17
ID: 39655694
haha I don't like cats, but I wouldn't skin one. Either way i'm not offended.

This is how I am binding....

private void LoadEnquiryHeader()
        {
            using (var context = new AscentEntities())
            {
                grdEnquiryHeader.ItemsSource = context.Qte_Header;
            }
        }

        private void LoadEnquiryFooter()
        {
            using (var EnqFooter = new AscentEntities())
            {

                var EnqFooterVar = (from d in EnqFooter.Qte_Lines where d.LinesAstuteRef == Instance_EnquiryCustomer.AstuteRef select d).ToList();

                grdEnquiryLines.ItemsSource = EnqFooterVar;

            }
        }

Open in new window

0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 39656278
I prefer Lambda expressions to LINQ queries in most cases:

var EnqFooterVar = EnqFooter.Qte_Lines
    .Where(lines => lines.LinesAstuteRef == Instance_EnquiryCustomer.AstuteRef)
    .ToList();

Open in new window

0
 

Author Comment

by:deanlee17
ID: 39656286
Do they run any faster? Or just personal preference?
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 39656590
LINQ queries compile into Lambda expressions, so it is personal preference.  I just feel that they are a cleaner way of approaching the same thing.  This is contrary to what others believe, but I don't mind being different.

Query Syntax and Method Syntax in LINQ (C#)
http://msdn.microsoft.com/en-us/library/vstudio/bb397947.aspx

Query syntax and method syntax are semantically identical, but many people find query syntax simpler and easier to read. Some queries must be expressed as method calls. For example, you must use a method call to express a query that retrieves the number of elements that match a specified condition. You also must use a method call for a query that retrieves the element that has the maximum value in a source sequence. The reference documentation for the standard query operators in the System.Linq namespace generally uses method syntax. Therefore, even when getting started writing LINQ queries, it is useful to be familiar with how to use method syntax in queries and in query expressions themselves.
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

For those of you who don't follow the news, or just happen to live under rocks, Microsoft Research released a beta SDK (http://www.microsoft.com/en-us/download/details.aspx?id=27876) for the Xbox 360 Kinect. If you don't know what a Kinect is (http:…
This article describes how to use the timestamp of existing data in a database to allow Tableau to calculate the prior work day instead of relying on case statements or if statements to calculate the days of the week.
This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA. http://www.experts-exchange.com/videos/1478/Excel-Error-Handlin…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question