SlideShare a Scribd company logo
1 of 69
Binding Lists in WPF ,[object Object],[object Object],[object Object],[object Object],[object Object]
Table of Contents ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Table of Contents (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Complex Data Binding Binding to a Collection of Items
Complex  B inding ,[object Object],// Create an alias for a generic type so that we // can create a list of Person objects in XAML class People : List<Person> { } <!-- Declaring a collection in XAML -->  <local:People x:Key=&quot;Family&quot;> <local:Person Name=&quot;Tom&quot; Age=&quot;11&quot; /> <local:Person Name=&quot;John&quot; Age=&quot;12&quot; /> <local:Person Name=&quot;Melissa&quot; Age=&quot;38&quot; /> </local:People>
Complex  B inding  (2) ,[object Object],[object Object],<Grid DataContext=&quot;{StaticResource Family}&quot;> … <TextBlock …>Name:</TextBlock> <TextBox Text=&quot;{Binding Path=Name}&quot; … /> <TextBox Text=&quot;{Binding Path=Age}&quot; Foreground=&quot;{Binding Path=Age, Converter=…}&quot; … />
Complex Data Binding Live Demo
Accessing the &quot;Current Item&quot;
Accessing the &quot;Current Item&quot; ,[object Object],[object Object]
Accessing the &quot;Current Item&quot; (3) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Accessing the &quot;Current Item&quot; (2) ,[object Object],public partial class MainWindow : Window { … private void birthdayButton_Click(object sender, RoutedEventArgs e) { People people = (People)this.FindResource(&quot;Family&quot;); ICollectionView view = CollectionViewSource.GetDefaultView(people); Person person = (Person) view.CurrentItem ; ++person.Age; MessageBox.Show(person.Age.ToString()); } }
Navigating Between Items ,[object Object],[object Object],ICollectionView GetFamilyView() { People people =(People)this.FindResource(&quot;Family&quot;); return CollectionViewSource.GetDefaultView(people); } private void buttonBack_Click(object sender, RoutedEventArgs e) { ICollectionView view = GetFamilyView(); view.MoveCurrentToPrevious(); if (view.IsCurrentBeforeFirst)  view.MoveCurrentToFirst(); }
Navigating Between Items Live Demo
Binding List Controls DisplayMemberPath  and  SelectedValuePath
Binding List Controls ,[object Object],[object Object],[object Object],[object Object],[object Object]
DisplayMemberPath ,[object Object],[object Object],<ListBox ItemsSource=&quot;{Binding}&quot; DisplayMemberPath=&quot;Name&quot; IsSynchronizedWithCurrentItem=&quot;True&quot; /> <!--The result is-->
SelectedValuePath ,[object Object],[object Object],<ListBox Name=&quot;ListBoxPeople&quot; ItemsSource=&quot;{Binding}&quot; DisplayMemberPath=&quot;Name&quot; SelectedValuePath=&quot;Age&quot; /> private void ListBoxPeople_SelectionChanged( object sender, SelectionChangedEventArgs e) { int index = ListBoxPerson.SelectedIndex; if (index < 0) { return; } Person item = (Person) ListBoxPerson.SelectedItem; int value = (int) ListBoxPerson.SelectedValue; … }
DisplayMemberPath  and  SelectedValuePath Live Demo
Using Look-up Bindings
Using Look-up Bindings ,[object Object],[object Object],public class NamedAge { public string NameForAge { get; set; } public int AgeId { get; set; } } class NamedAges : List<NamedAge> { }
Using Look-up Bindings (2) ,[object Object],[object Object],<local:NamedAges x:Key=&quot;NamedAgeLookup&quot;> <local:NamedAge NameForAge=&quot;zero&quot; AgeId=&quot;0&quot; /> <local:NamedAge NameForAge=&quot;one&quot; AgeId=&quot;1&quot; /> </local:NamedAges> <ComboBox Name=&quot;ComboBoxNumbers&quot; ItemsSource= &quot;{Binding Source={StaticResource NamedAgeLookup}}&quot; DisplayMemberPath=&quot;NameForAge&quot; SelectedValuePath=&quot;AgeId&quot; SelectedValue=&quot;{Binding Path=Age}&quot; />
Using Look-up Bindings Live Demo
Using Data Templates
Using Data Templates ,[object Object],[object Object],[object Object],[object Object],[object Object]
Using Data Templates (2) ,[object Object],<ListBox ItemsSource=&quot;{Binding}&quot;> <ListBox.ItemTemplate> <DataTemplate> <TextBlock> <TextBlock Text=&quot;{Binding Path=Name}&quot; /> (age:  <TextBlock Text=&quot;{Binding Path=Age}&quot; Foreground=&quot;{Binding Path=Age, Converter={StaticResource ageConverter}}&quot; />) </TextBlock> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Using Data Templates (2) ,[object Object],[object Object],[object Object]
Sorting Items
Sorting Items ,[object Object],[object Object],[object Object],[object Object]
Sorting Items (2) ,[object Object],private void buttonSort_Click (object sender, RoutedEventArgs e)  { ICollectionView view = GetFamilyView(); if (view.SortDescriptions.Count == 0) { view.SortDescriptions.Add( new SortDescription(&quot;Name&quot;, ListSortDirection.Ascending)); view.SortDescriptions.Add( new SortDescription(&quot;Age&quot;, ListSortDirection.Descending)); } else view.SortDescriptions.Clear(); }
Sorting Items Live Demo
Filtering
Filtering ,[object Object],[object Object],[object Object],private void buttonFilter_Click(object sender, RoutedEventArgs e) { ICollectionView view = GetFamilyView();  // the example continues
Filtering (2) if (view.Filter == null)  { view.Filter = delegate(object item) { return ((Person)item).Age >= 25; }; } else { view.Filter = null; } }  // The result is:
Grouping
Grouping ,[object Object],[object Object],[object Object],if (view.GroupDescriptions.Count == 0)  { view.GroupDescriptions.Add( new PropertyGroupDescription(&quot;Age&quot;)); } else  { view.GroupDescriptions.Clear(); }
Grouping (2) ,[object Object],[object Object],[object Object],[object Object],<ListBox … ItemsSource=&quot;{Binding}&quot; > <ListBox.GroupStyle> <x:Static Member=&quot;GroupStyle.Default&quot; /> </ListBox.GroupStyle> </ListBox>
Filtering and Grouping Live Demo
Declarative Sorting and Grouping
Declarative Sorting and Grouping ,[object Object],[object Object],[object Object],[object Object],xmlns:compModel=&quot;clr-namespace:System.ComponentModel; assembly=WindowsBase&quot;  xmlns:data=&quot;clr-namespace:System.Windows.Data;assembly= PresentationFramework&quot;>
Declarative Sorting and Grouping (2) <CollectionViewSource x:Key=&quot;SortedGroupedFamily&quot; Source=&quot;{StaticResource Family}&quot;> <CollectionViewSource.SortDescriptions> <compModel:SortDescription PropertyName=&quot;Name&quot; Direction=&quot;Ascending&quot; /> <compModel:SortDescription PropertyName=&quot;Age&quot; Direction=&quot;Descending&quot; /> </CollectionViewSource.SortDescriptions> <CollectionViewSource.GroupDescriptions> <data:PropertyGroupDescription PropertyName=&quot;Age&quot; Converter=&quot;{StaticResource ageConverter}&quot; /> <data:PropertyGroupDescription PropertyName=&quot;Age&quot; /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource>
Declarative Sorting and Grouping Live Demo
Data Source Providers
Object Data Provider ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Object Data Provider  – Example ,[object Object],[object Object],public class Person : INotifyPropertyChanged { … } public class People : ObservableCollection<Person> {} public class RemotePeopleLoader  { public People LoadPeople() { // Load people from somewhere People people = new People( ); … return people; } … }
Object Data Provider  – Example (2) ,[object Object],[object Object],[object Object],<Window.Resources>  ... <ObjectDataProvider x:Key=&quot;Family&quot; ObjectType=&quot;{x:Type local:RemotePeopleLoader}&quot; MethodName=&quot;LoadPeople&quot; /> </Window.Resources>
Binding to Relational Data ,[object Object],[object Object],[object Object],[object Object],DataClassesPeopleDataContext dataContextPeople =  new DataClassesPeopleDataContext();
Binding to Relational Data (2) ,[object Object],<Window.Resources> <DataTemplate x:Key=&quot;DataTemplatePersonName&quot;> <TextBlock Text=&quot;{Binding Path=PersonName}&quot;/> </DataTemplate> </Window.Resources> ... <ListBox Name=&quot;ListBoxPeople&quot; ItemTemplate= &quot;{StaticResource DataTemplatePersonName }&quot;/>
Binding to Relational Data (3) ,[object Object],[object Object],People newPerson = new People(); newPerson.PersonName = TextBoxAdd.Text;  dataContexPeople.Peoples.InsertOnSubmit(newPerson); dataContexPeople.SubmitChanges();
Binding to Relational Data Live Demo
XML Data Source Provider ,[object Object],[object Object],<Window.Resources> <XmlDataProvider x:Key=&quot;Family&quot; Source=&quot;family.xml&quot; XPath=&quot;/sb:Family/sb:Person&quot;> <XmlDataProvider.XmlNamespaceManager> <XmlNamespaceMappingCollection> <XmlNamespaceMapping Prefix=&quot;sb&quot;  Uri=&quot;http://sellsbrothers.com&quot; /> </XmlNamespaceMappingCollection> </XmlDataProvider.XmlNamespaceManager> </XmlDataProvider>  <!--the example continues-->
XML Data Source Provider (2) ,[object Object],[object Object],… <StackPanel Orientation=&quot;Horizontal&quot;> <TextBlock Text=&quot;{Binding XPath=@Name}&quot; /> <TextBlock Text=&quot; (age: &quot; /> <TextBlock Text=&quot;{Binding XPath=@Age}&quot; Foreground=&quot;{Binding XPath=@Age, Converter= {StaticResource ageConverter}}&quot; /> <TextBlock Text=&quot;)&quot; /> </StackPanel> …
XML Data Source Provider (3) ,[object Object],[object Object],[object Object],void birthdayButton_Click(object sender, RoutedEventArgs e) { ICollectionView view = GetFamilyView( ); XmlElement person = (XmlElement)view.CurrentItem; // the example continues
XML Data Source Provider (4) person.SetAttribute(&quot;Age&quot;, (int.Parse( person.Attributes[&quot;Age&quot;].Value) + 1).ToString( ));  MessageBox.Show( string.Format(&quot;Happy Birthday, {0}, age {1}!&quot;, person.Attributes[&quot;Name&quot;].Value, person.Attributes[&quot;Age&quot;].Value), &quot;Birthday&quot;); } … void groupButton_Click(object sender, RoutedEventArgs e) { ICollectionView view = GetFamilyView( ); if( view.GroupDescriptions.Count == 0 )  { view.GroupDescriptions.Add(new PropertyGroupDescription(&quot;@Age&quot;)); } else { view.GroupDescriptions.Clear(); } }
XML Data Source Provider Live Demo
Master-Detail Binding
Master-Details Binding ,[object Object],[object Object],[object Object],[object Object],[object Object]
Master-Details Binding (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Master-Details Binding – Example ,[object Object],<Window.Resources> <local:Families x:Key=&quot;Families&quot;> <local:Family FamilyName=&quot;Piyandetata&quot;> <local:Family.Members> <local:People> <local:Person Name=&quot;Joro Vodkata&quot; Age=&quot;21&quot; /> … </local:People> </local:Family.Members> </local:Family> <local:Family FamilyName=&quot;Addams&quot;> <local:Family.Members> <local:People> <local:Person Name=&quot;Uncle Fester&quot; Age=&quot;135&quot; /> … </local:Families> </Window.Resources>
Master-Details Binding –  Example (2) ,[object Object],<Window.Resources> <local:Families x:Key=&quot;Families&quot;>…</local:Families> </Window.Resources> <Grid DataContext=&quot;{StaticResource Families}&quot;> … <!-- Families Column --> <TextBlock Grid.Row=&quot;0&quot; Grid.Column=&quot;0&quot;>Families:</TextBlock> <ListBox Grid.Row=&quot;1&quot; Grid.Column=&quot;0&quot; IsSynchronizedWithCurrentItem=&quot;True&quot; ItemsSource=&quot;{Binding}&quot;> <ListBox.ItemTemplate> <DataTemplate> <TextBlock Text=&quot;{Binding Path=FamilyName}&quot; /> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Master-Details Binding –  Example (3) ,[object Object],<Grid DataContext=&quot;{StaticResource Families}&quot;> ... …  <!-- Members Column --> <StackPanel Grid.Row=&quot;0&quot; Grid.Column=&quot;1&quot;  Orientation=&quot;Horizontal&quot;> <TextBlock Text=&quot;{Binding Path=FamilyName}&quot; /> <TextBlock Text=&quot; Family Members:&quot; /> </StackPanel> <ListBox Grid.Row=&quot;1&quot; Grid.Column=&quot;1&quot; IsSynchronizedWithCurrentItem=&quot;True&quot; ItemsSource=&quot;{Binding Path=Members}&quot; > <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation=&quot;Horizontal&quot;> <TextBlock Text=&quot;{Binding Path=Name}&quot; /> <TextBlock Text=&quot; (age: &quot; /> <TextBlock Text=&quot;{Binding Path=Age}&quot; /> <TextBlock Text=&quot; )&quot; /> …
Master-Details Binding Live Demo
Hierarchical Binding
Hierarchical Binding ,[object Object],[object Object],[object Object],[object Object],[object Object]
Hierarchical Binding (2) ,[object Object],[object Object],<DataTemplate DataType=&quot;{x:Type local:Family}&quot;> <TextBlock Text=&quot;{Binding Path=FamilyName}&quot; /> </DataTemplate> </Window.Resources> … <TreeView DataContext=&quot;{StaticResource Families}&quot;> <TreeViewItem ItemsSource=&quot;{Binding}&quot;  Header=&quot;Families&quot; /> </TreeView>
Hierarchical Binding (3) ,[object Object],[object Object],<HierarchicalDataTemplate DataType=&quot;{x:Type local:Family}&quot; ItemsSource=&quot;{Binding Path=Members}&quot;> <TextBlock Text=&quot;{Binding Path=FamilyName}&quot; /> </HierarchicalDataTemplate> <HierarchicalDataTemplate DataType=&quot;{x:Type local:Person}&quot; ItemsSource=&quot;{Binding Path=Traits}&quot;> <TextBlock> <TextBlock Text=&quot;{Binding Path=Name}&quot; /> (age: <TextBlock Text=&quot;{Binding Path=Age}&quot; />) </TextBlock> </HierarchicalDataTemplate>
Binding Lists ,[object Object],http://academy.telerik.com
Exercises ,[object Object],[object Object]
Exercises (2) ,[object Object],Design a form to view products by ID and bind all controls to their relevant columns from the database tables.
Exercises (3) ,[object Object],[object Object]

More Related Content

What's hot (20)

DOM and Events
DOM and EventsDOM and Events
DOM and Events
 
Tutorial Solution
Tutorial SolutionTutorial Solution
Tutorial Solution
 
Java script
Java scriptJava script
Java script
 
Learn javascript easy steps
Learn javascript easy stepsLearn javascript easy steps
Learn javascript easy steps
 
Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence API
 
Intro To Hibernate
Intro To HibernateIntro To Hibernate
Intro To Hibernate
 
Web 6 | JavaScript DOM
Web 6 | JavaScript DOMWeb 6 | JavaScript DOM
Web 6 | JavaScript DOM
 
Web 5 | JavaScript Events
Web 5 | JavaScript EventsWeb 5 | JavaScript Events
Web 5 | JavaScript Events
 
XAML and WPF - Dinko Jakovljević
XAML and WPF - Dinko JakovljevićXAML and WPF - Dinko Jakovljević
XAML and WPF - Dinko Jakovljević
 
Ejb3 Dan Hinojosa
Ejb3 Dan HinojosaEjb3 Dan Hinojosa
Ejb3 Dan Hinojosa
 
Hibernate
HibernateHibernate
Hibernate
 
Javascript dom
Javascript domJavascript dom
Javascript dom
 
Hibernate working with criteria- Basic Introduction
Hibernate working with criteria- Basic IntroductionHibernate working with criteria- Basic Introduction
Hibernate working with criteria- Basic Introduction
 
jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events jQuery -Chapter 2 - Selectors and Events
jQuery -Chapter 2 - Selectors and Events
 
AJAX
AJAXAJAX
AJAX
 
Vaadin JPAContainer
Vaadin JPAContainerVaadin JPAContainer
Vaadin JPAContainer
 
INTRODUCTION TO CLIENT SIDE PROGRAMMING
INTRODUCTION TO CLIENT SIDE PROGRAMMINGINTRODUCTION TO CLIENT SIDE PROGRAMMING
INTRODUCTION TO CLIENT SIDE PROGRAMMING
 
Hibernate An Introduction
Hibernate An IntroductionHibernate An Introduction
Hibernate An Introduction
 
Sharing Data Between Angular Components
Sharing Data Between Angular ComponentsSharing Data Between Angular Components
Sharing Data Between Angular Components
 
jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects  jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects
 

Viewers also liked

Viewers also liked (13)

CSS 3
CSS 3CSS 3
CSS 3
 
Slice and Dice
Slice and DiceSlice and Dice
Slice and Dice
 
CSS Presentation
CSS PresentationCSS Presentation
CSS Presentation
 
Data Access with ADO.Net
Data Access with ADO.NetData Access with ADO.Net
Data Access with ADO.Net
 
WPF Templating and Styling
WPF Templating and StylingWPF Templating and Styling
WPF Templating and Styling
 
Model View ViewModel
Model View ViewModelModel View ViewModel
Model View ViewModel
 
Web Design Concepts
Web Design ConceptsWeb Design Concepts
Web Design Concepts
 
Web design Tools
Web design ToolsWeb design Tools
Web design Tools
 
Ado.net
Ado.netAdo.net
Ado.net
 
HTML 5
HTML 5HTML 5
HTML 5
 
ASP.NET 09 - ADO.NET
ASP.NET 09 - ADO.NETASP.NET 09 - ADO.NET
ASP.NET 09 - ADO.NET
 
For Beginers - ADO.Net
For Beginers - ADO.NetFor Beginers - ADO.Net
For Beginers - ADO.Net
 
ADO.NET -database connection
ADO.NET -database connectionADO.NET -database connection
ADO.NET -database connection
 

Similar to Binding Lists in WPF - Sort, Filter, Group Data

Configuring Data Binding part2 ABTO Software Lecture Korotchyn
Configuring Data Binding part2 ABTO Software Lecture KorotchynConfiguring Data Binding part2 ABTO Software Lecture Korotchyn
Configuring Data Binding part2 ABTO Software Lecture KorotchynABTO Software
 
ASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And RepresentationASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And RepresentationRandy Connolly
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object ReferencesTareq Hasan
 
Introduction to Spring MVC
Introduction to Spring MVCIntroduction to Spring MVC
Introduction to Spring MVCRichard Paul
 
Handling tree control events
Handling tree control eventsHandling tree control events
Handling tree control eventsHemakumar.S
 
Configuring Data Binding part1 ABTO Software Lecture Korotchyn
Configuring Data Binding part1 ABTO Software Lecture KorotchynConfiguring Data Binding part1 ABTO Software Lecture Korotchyn
Configuring Data Binding part1 ABTO Software Lecture KorotchynABTO Software
 
Javascript Experiment
Javascript ExperimentJavascript Experiment
Javascript Experimentwgamboa
 
1 MVC – Ajax and Modal Views AJAX stands for Asynch.docx
1  MVC – Ajax and Modal Views AJAX stands for Asynch.docx1  MVC – Ajax and Modal Views AJAX stands for Asynch.docx
1 MVC – Ajax and Modal Views AJAX stands for Asynch.docxhoney725342
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5Mahmoud Ouf
 
Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Gilbok Lee
 
Silverlight week5
Silverlight week5Silverlight week5
Silverlight week5iedotnetug
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateKiev ALT.NET
 

Similar to Binding Lists in WPF - Sort, Filter, Group Data (20)

Wpf Introduction
Wpf IntroductionWpf Introduction
Wpf Introduction
 
displaytag
displaytagdisplaytag
displaytag
 
Dev308
Dev308Dev308
Dev308
 
Configuring Data Binding part2 ABTO Software Lecture Korotchyn
Configuring Data Binding part2 ABTO Software Lecture KorotchynConfiguring Data Binding part2 ABTO Software Lecture Korotchyn
Configuring Data Binding part2 ABTO Software Lecture Korotchyn
 
Presentation
PresentationPresentation
Presentation
 
ASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And RepresentationASP.NET 08 - Data Binding And Representation
ASP.NET 08 - Data Binding And Representation
 
Java: Objects and Object References
Java: Objects and Object ReferencesJava: Objects and Object References
Java: Objects and Object References
 
Introduction to Spring MVC
Introduction to Spring MVCIntroduction to Spring MVC
Introduction to Spring MVC
 
Handling tree control events
Handling tree control eventsHandling tree control events
Handling tree control events
 
Configuring Data Binding part1 ABTO Software Lecture Korotchyn
Configuring Data Binding part1 ABTO Software Lecture KorotchynConfiguring Data Binding part1 ABTO Software Lecture Korotchyn
Configuring Data Binding part1 ABTO Software Lecture Korotchyn
 
Javascript Experiment
Javascript ExperimentJavascript Experiment
Javascript Experiment
 
1 MVC – Ajax and Modal Views AJAX stands for Asynch.docx
1  MVC – Ajax and Modal Views AJAX stands for Asynch.docx1  MVC – Ajax and Modal Views AJAX stands for Asynch.docx
1 MVC – Ajax and Modal Views AJAX stands for Asynch.docx
 
J Query
J QueryJ Query
J Query
 
Intake 38 data access 5
Intake 38 data access 5Intake 38 data access 5
Intake 38 data access 5
 
Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)Data Binding Intro (Windows 8)
Data Binding Intro (Windows 8)
 
Element
ElementElement
Element
 
Silverlight week5
Silverlight week5Silverlight week5
Silverlight week5
 
2310 b 12
2310 b 122310 b 12
2310 b 12
 
Micro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicateMicro-ORM Introduction - Don't overcomplicate
Micro-ORM Introduction - Don't overcomplicate
 
J Query Public
J Query PublicJ Query Public
J Query Public
 

More from Doncho Minkov

More from Doncho Minkov (18)

HTML 5 Tables and Forms
HTML 5 Tables and FormsHTML 5 Tables and Forms
HTML 5 Tables and Forms
 
CSS Overview
CSS OverviewCSS Overview
CSS Overview
 
CSS Layout
CSS LayoutCSS Layout
CSS Layout
 
Adobe Photoshop
Adobe PhotoshopAdobe Photoshop
Adobe Photoshop
 
Introduction to XAML and WPF
Introduction to XAML and WPFIntroduction to XAML and WPF
Introduction to XAML and WPF
 
WPF Layout Containers
WPF Layout ContainersWPF Layout Containers
WPF Layout Containers
 
WPF Graphics and Animations
WPF Graphics and AnimationsWPF Graphics and Animations
WPF Graphics and Animations
 
Introduction to Cross-platform Mobile Development Course
Introduction to Cross-platform Mobile Development CourseIntroduction to Cross-platform Mobile Development Course
Introduction to Cross-platform Mobile Development Course
 
HTML Fundamentals
HTML FundamentalsHTML Fundamentals
HTML Fundamentals
 
Tables and Forms in HTML
Tables and Forms in HTMLTables and Forms in HTML
Tables and Forms in HTML
 
HTML5
HTML5HTML5
HTML5
 
CSS Part I
CSS Part ICSS Part I
CSS Part I
 
CSS Part II
CSS Part IICSS Part II
CSS Part II
 
CSS3
CSS3CSS3
CSS3
 
Workshop Usability
Workshop UsabilityWorkshop Usability
Workshop Usability
 
JavaScript
JavaScriptJavaScript
JavaScript
 
JavaScript OOP
JavaScript OOPJavaScript OOP
JavaScript OOP
 
jQuery Fundamentals
jQuery FundamentalsjQuery Fundamentals
jQuery Fundamentals
 

Recently uploaded

VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Roomdivyansh0kumar0
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessAggregage
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Dave Litwiller
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetDenis Gagné
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...noida100girls
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 DelhiCall Girls in Delhi
 

Recently uploaded (20)

VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
Sales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for SuccessSales & Marketing Alignment: How to Synergize for Success
Sales & Marketing Alignment: How to Synergize for Success
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
9599632723 Top Call Girls in Delhi at your Door Step Available 24x7 Delhi
 

Binding Lists in WPF - Sort, Filter, Group Data

Editor's Notes

  1. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  2. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  3. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  4. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  5. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  6. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  7. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  8. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  9. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  10. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  11. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  12. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  13. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  14. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  15. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  16. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  17. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  18. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  19. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  20. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  21. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  22. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  23. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  24. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  25. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  26. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  27. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##
  28. * 02/25/12 07/16/96 (c) 2005 National Academy for Software Development - http://academy.devbg.org. All rights reserved. Unauthorized copying or re-distribution is strictly prohibited.* ##