Solved

WPF Master detail grids using LINQ

Posted on 2013-11-15
7
485 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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Entering time in Microsoft Access can be difficult. An input mask often bothers users more than helping them and won't catch all typing errors. This article shows how to create a textbox for 24-hour time input with full validation politely catching …
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
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…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

914 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now