So far in this tutorial, we have mostly created bindings between UI elements and existing classes, but in real life applications, you will obviously be binding to your own data objects.
This is just as easy, but once you start doing it, you might discover something that disappoints you: Changes are not automatically reflected, like they were in previous examples.
This property ensures that the selected item always correspond to the Current Item property in Item Collection.
For example, I have two listbox and both are bound with same itemsource property.
Groups the elements of a sequence according to a key selector function.
What we need is a list that notifies any destinations of changes to its content, and fortunately, WPF provides a type of list that will do just that.
How to handle them may vary, depending on what you're doing and what you're looking to accomplish, but WPF comes with two very easy solutions that you can use: The Observable Collection and the INotify Property Changed interface.
The following example will show you why we need these two things: Try running it for yourself and watch how even though you add something to the list or change the name of one of the users, nothing in the UI is updated.
First I bound Item Source property in XAML than i set Display Member Path to First Name it means Listbox should display only values of First Name property available in Collection.
In Code behind, i created one class called People and created one Observable Collection of People class.