SlideShare a Scribd company logo
WPF Data Binding Explained Peter Himschoot Trainer @ U2U Microsoft Regional Director Belux www.u2u.info/Blogs/Peter
Data Binding The need for data binding Using simple data binding Converting and validating data Using complex data binding Customizing data binding with templates Master-detail data binding Filtering, sorting and grouping data Xml, LINQ, ADO.NET data binding Debugging Data Binding
The need for Data Binding Imagine showing data retrieved from DB Move data from a column to a control Allow user to edit the data Validate the data Then move data from control to column Update the column Data Binding automates this!
What is Data Binding Control Property Object Property One Way Two Way
Simple Data Binding Bind one control’s property to one object’s data Control to control Control to (data) object
Data Conversion Bind to another type by converting it Add Converter class as a resource: Use Converter
Building a Converter Implement the IValueConverter interface
UpdateSourceTrigger TextBox doesn’t change value immediately To do so, set UpdateSourceTrigger UpdateSourceTrigger values: Default LostFocus (= Default for TextBox) PropertyChanged Explicit
Data Validation Users will always make mistakes Validation helps users determine these Default DataBinding doesn’t support this You need more verbose “Binding”
Exception Validation Data Source can throw Exception ExceptionValidationRule catches this
Custom Validation Rules Derive from ValidationRule
Using the ValidationRule Add it to the <ValidationRules> element
Custom Error Feedback Define a ControlTemplate resource
Using the ControlTemplate Set Validation.ErrorTemplate attached prop Validation will use this for feedback
Using Styles Even better, use a style for all textboxes
Using Tooltips User cannot see what is wrong Use a tooltip to show the actual error
Data Binding Multiple Properties Avoid repeating the same source Use DataContext!
Provide Data from Code May be easier to load data in codebehind Can set DataContext in code
Using Complex Data Binding Bind a control’s items to list of objects Objects are displayed using ToString()
Using Data Templates Display object with a DataTemplate Set control’s ItemTemplate DataTemplate DataSource = object
Selecting the DataTemplate By Name By Type Type selects DataTemplate
Dynamically Selecting a Template Use a DataTemplateSelector
PersonDataTemplateSelector
Binding with DataProviders Use DataProvider in XAML Then set ItemsSource in XAML Your class or Service Proxy (Optional) Method to call
Asynchronous Data Binding Data Provider allows async binding Call method in background
Master Detail Binding Use ItemsControl (e.g. ListBox) as master Set IsSynchronizedWithCurrentItem=&quot;True&quot; Other bindings on same source will follow master
Master Detail
DisplayMemberPath Replaces single-field template
Filtering with Views Use a CollectionView CollectionViewSource in XAML Implement the Filter event
Sorting and Grouping Again use a CollectionView
Sorting and Grouping Use a CollectionViewSource Define a GroupStyle
Binding to XML <XmlDataProvider x:Key=&quot;cars&quot; XPath=&quot;/Cars/Car&quot; Source=&quot;cars.xml&quot; /> <TextBlock TextContent=&quot;{Binding XPath=@Make, Source={StaticResource cars}}&quot; /> <Cars> <Car Make=&quot;Ford&quot; Model=&quot;F-150&quot;> <Image>truck.png</Image> </Car> <Car> ... </Car> </Cars> cars.xml
Provide XML from Code Can load XML data in codebehind Just like any other data XmlDocument doc = new XmlDocument(); doc.LoadXml(&quot;<Foo><Bar>Hello, world</Bar></Foo>&quot;); myGrid.DataContext = doc;
Binding To DataSets Fill the DataSet as usual Then use it as the DataContext Controls use Path to reference Tables Columns
Dude, where’s the DataGrid? DataGrid like controls not provided Provided 3d party controls Infragistics Xceed …
Debugging Data Binding Binding failures generate debug messages Check the Output window in Visual Studio®
 

More Related Content

What's hot (20)

Binding radgridview into reportviewer
Binding radgridview into reportviewerBinding radgridview into reportviewer
Binding radgridview into reportviewer
Junifar hidayat
 
jQuery templates and data link
jQuery templates and data linkjQuery templates and data link
jQuery templates and data link
Microsoft Developer Network (MSDN) - Belgium and Luxembourg
 
KMI System
KMI SystemKMI System
KMI System
Thirumavalavan Ganesan
 
Managing state in asp.net
Managing state in asp.netManaging state in asp.net
Managing state in asp.net
Sireesh K
 
Sharing Data Between Angular Components
Sharing Data Between Angular ComponentsSharing Data Between Angular Components
Sharing Data Between Angular Components
Squash Apps Pvt Ltd
 
ASP.NET 4.5 webforms
ASP.NET 4.5 webformsASP.NET 4.5 webforms
ASP.NET 4.5 webforms
Abhishek Sur
 
Data Binding in Silverlight
Data Binding in SilverlightData Binding in Silverlight
Data Binding in Silverlight
Boulos Dib
 
WPF DATA BINDING CHEATSHEET V1.1
WPF DATA BINDING CHEATSHEET V1.1WPF DATA BINDING CHEATSHEET V1.1
WPF DATA BINDING CHEATSHEET V1.1
Vikas Pandey
 
Grid View Control CS
Grid View Control CSGrid View Control CS
Grid View Control CS
sunmitraeducation
 
Diving in the Flex Data Binding Waters
Diving in the Flex Data Binding WatersDiving in the Flex Data Binding Waters
Diving in the Flex Data Binding Waters
michael.labriola
 
Ajax Prediction
Ajax PredictionAjax Prediction
Ajax Prediction
Rashmi Sinha
 
Angular Presentation
Angular PresentationAngular Presentation
Angular Presentation
Adam Moore
 
XAML Data Binding in UWP
XAML Data Binding in UWPXAML Data Binding in UWP
XAML Data Binding in UWP
Christian Hissibini
 
Command object
Command objectCommand object
Command object
Vijay Shukla
 
10 01 containersbindings
10 01 containersbindings10 01 containersbindings
10 01 containersbindings
tflung
 
Data binding in silverlight
Data binding in silverlightData binding in silverlight
Data binding in silverlight
msarangam
 
ASP.net Image Slideshow
ASP.net Image SlideshowASP.net Image Slideshow
ASP.net Image Slideshow
Hock Leng PUAH
 
Database connectivity to sql server asp.net
Database connectivity to sql server asp.netDatabase connectivity to sql server asp.net
Database connectivity to sql server asp.net
Hemant Sankhla
 
AdRotator and AdRepeater Control in Asp.Net for Msc CS
AdRotator and AdRepeater Control in Asp.Net for Msc CSAdRotator and AdRepeater Control in Asp.Net for Msc CS
AdRotator and AdRepeater Control in Asp.Net for Msc CS
Thanveen
 
2310 b 07
2310 b 072310 b 07
2310 b 07
Krazy Koder
 
Binding radgridview into reportviewer
Binding radgridview into reportviewerBinding radgridview into reportviewer
Binding radgridview into reportviewer
Junifar hidayat
 
Managing state in asp.net
Managing state in asp.netManaging state in asp.net
Managing state in asp.net
Sireesh K
 
Sharing Data Between Angular Components
Sharing Data Between Angular ComponentsSharing Data Between Angular Components
Sharing Data Between Angular Components
Squash Apps Pvt Ltd
 
ASP.NET 4.5 webforms
ASP.NET 4.5 webformsASP.NET 4.5 webforms
ASP.NET 4.5 webforms
Abhishek Sur
 
Data Binding in Silverlight
Data Binding in SilverlightData Binding in Silverlight
Data Binding in Silverlight
Boulos Dib
 
WPF DATA BINDING CHEATSHEET V1.1
WPF DATA BINDING CHEATSHEET V1.1WPF DATA BINDING CHEATSHEET V1.1
WPF DATA BINDING CHEATSHEET V1.1
Vikas Pandey
 
Diving in the Flex Data Binding Waters
Diving in the Flex Data Binding WatersDiving in the Flex Data Binding Waters
Diving in the Flex Data Binding Waters
michael.labriola
 
Angular Presentation
Angular PresentationAngular Presentation
Angular Presentation
Adam Moore
 
10 01 containersbindings
10 01 containersbindings10 01 containersbindings
10 01 containersbindings
tflung
 
Data binding in silverlight
Data binding in silverlightData binding in silverlight
Data binding in silverlight
msarangam
 
ASP.net Image Slideshow
ASP.net Image SlideshowASP.net Image Slideshow
ASP.net Image Slideshow
Hock Leng PUAH
 
Database connectivity to sql server asp.net
Database connectivity to sql server asp.netDatabase connectivity to sql server asp.net
Database connectivity to sql server asp.net
Hemant Sankhla
 
AdRotator and AdRepeater Control in Asp.Net for Msc CS
AdRotator and AdRepeater Control in Asp.Net for Msc CSAdRotator and AdRepeater Control in Asp.Net for Msc CS
AdRotator and AdRepeater Control in Asp.Net for Msc CS
Thanveen
 

Similar to Dev308 (20)

Simple Data Binding
Simple Data BindingSimple Data Binding
Simple Data Binding
Doncho Minkov
 
2310 b 10
2310 b 102310 b 10
2310 b 10
Krazy Koder
 
WPF and Databases
WPF and DatabasesWPF and Databases
WPF and Databases
Doncho Minkov
 
WPF - Controls &amp; Data
WPF - Controls &amp; DataWPF - Controls &amp; Data
WPF - Controls &amp; Data
Sharada Gururaj
 
Data binding in silverlight
Data binding in silverlightData binding in silverlight
Data binding in silverlight
msarangam
 
Silverlight 5 whats new overview
Silverlight 5 whats new overviewSilverlight 5 whats new overview
Silverlight 5 whats new overview
mdc11
 
Lecture13
Lecture13Lecture13
Lecture13
Châu Thanh Chương
 
Detail view in distributed technologies
Detail view in distributed technologiesDetail view in distributed technologies
Detail view in distributed technologies
jamessakila
 
Entity Framework v2 Best Practices
Entity Framework v2 Best PracticesEntity Framework v2 Best Practices
Entity Framework v2 Best Practices
Andri Yadi
 
Cis266 final review
Cis266 final reviewCis266 final review
Cis266 final review
Randy Riness @ South Puget Sound Community College
 
Entity framework and how to use it
Entity framework and how to use itEntity framework and how to use it
Entity framework and how to use it
nspyre_net
 
Chapter 15
Chapter 15Chapter 15
Chapter 15
application developer
 
the .NET Framework. It provides the claf
the .NET Framework. It provides the clafthe .NET Framework. It provides the claf
the .NET Framework. It provides the claf
TesfahunMaru1
 
Knockoutjs databinding
Knockoutjs databindingKnockoutjs databinding
Knockoutjs databinding
Boulos Dib
 
ASP.NET 09 - ADO.NET
ASP.NET 09 - ADO.NETASP.NET 09 - ADO.NET
ASP.NET 09 - ADO.NET
Randy Connolly
 
Ch 7 data binding
Ch 7 data bindingCh 7 data binding
Ch 7 data binding
Madhuri Kavade
 
Flex3 data binding
Flex3 data bindingFlex3 data binding
Flex3 data binding
guestdf3003
 
Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)Ado.Net Data Services (Astoria)
Ado.Net Data Services (Astoria)
Igor Moochnick
 
exa_cer_g23
exa_cer_g23exa_cer_g23
exa_cer_g23
Agustin Zazueta
 
Practical OData
Practical ODataPractical OData
Practical OData
Vagif Abilov
 

Recently uploaded (20)

Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Quantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur MorganQuantum Computing Quick Research Guide by Arthur Morgan
Quantum Computing Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...
Noah Loul
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)Into The Box Conference Keynote Day 1 (ITB2025)
Into The Box Conference Keynote Day 1 (ITB2025)
Ortus Solutions, Corp
 
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...
TrustArc
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 

Dev308

  • 1. WPF Data Binding Explained Peter Himschoot Trainer @ U2U Microsoft Regional Director Belux www.u2u.info/Blogs/Peter
  • 2. Data Binding The need for data binding Using simple data binding Converting and validating data Using complex data binding Customizing data binding with templates Master-detail data binding Filtering, sorting and grouping data Xml, LINQ, ADO.NET data binding Debugging Data Binding
  • 3. The need for Data Binding Imagine showing data retrieved from DB Move data from a column to a control Allow user to edit the data Validate the data Then move data from control to column Update the column Data Binding automates this!
  • 4. What is Data Binding Control Property Object Property One Way Two Way
  • 5. Simple Data Binding Bind one control’s property to one object’s data Control to control Control to (data) object
  • 6. Data Conversion Bind to another type by converting it Add Converter class as a resource: Use Converter
  • 7. Building a Converter Implement the IValueConverter interface
  • 8. UpdateSourceTrigger TextBox doesn’t change value immediately To do so, set UpdateSourceTrigger UpdateSourceTrigger values: Default LostFocus (= Default for TextBox) PropertyChanged Explicit
  • 9. Data Validation Users will always make mistakes Validation helps users determine these Default DataBinding doesn’t support this You need more verbose “Binding”
  • 10. Exception Validation Data Source can throw Exception ExceptionValidationRule catches this
  • 11. Custom Validation Rules Derive from ValidationRule
  • 12. Using the ValidationRule Add it to the <ValidationRules> element
  • 13. Custom Error Feedback Define a ControlTemplate resource
  • 14. Using the ControlTemplate Set Validation.ErrorTemplate attached prop Validation will use this for feedback
  • 15. Using Styles Even better, use a style for all textboxes
  • 16. Using Tooltips User cannot see what is wrong Use a tooltip to show the actual error
  • 17. Data Binding Multiple Properties Avoid repeating the same source Use DataContext!
  • 18. Provide Data from Code May be easier to load data in codebehind Can set DataContext in code
  • 19. Using Complex Data Binding Bind a control’s items to list of objects Objects are displayed using ToString()
  • 20. Using Data Templates Display object with a DataTemplate Set control’s ItemTemplate DataTemplate DataSource = object
  • 21. Selecting the DataTemplate By Name By Type Type selects DataTemplate
  • 22. Dynamically Selecting a Template Use a DataTemplateSelector
  • 24. Binding with DataProviders Use DataProvider in XAML Then set ItemsSource in XAML Your class or Service Proxy (Optional) Method to call
  • 25. Asynchronous Data Binding Data Provider allows async binding Call method in background
  • 26. Master Detail Binding Use ItemsControl (e.g. ListBox) as master Set IsSynchronizedWithCurrentItem=&quot;True&quot; Other bindings on same source will follow master
  • 29. Filtering with Views Use a CollectionView CollectionViewSource in XAML Implement the Filter event
  • 30. Sorting and Grouping Again use a CollectionView
  • 31. Sorting and Grouping Use a CollectionViewSource Define a GroupStyle
  • 32. Binding to XML <XmlDataProvider x:Key=&quot;cars&quot; XPath=&quot;/Cars/Car&quot; Source=&quot;cars.xml&quot; /> <TextBlock TextContent=&quot;{Binding XPath=@Make, Source={StaticResource cars}}&quot; /> <Cars> <Car Make=&quot;Ford&quot; Model=&quot;F-150&quot;> <Image>truck.png</Image> </Car> <Car> ... </Car> </Cars> cars.xml
  • 33. Provide XML from Code Can load XML data in codebehind Just like any other data XmlDocument doc = new XmlDocument(); doc.LoadXml(&quot;<Foo><Bar>Hello, world</Bar></Foo>&quot;); myGrid.DataContext = doc;
  • 34. Binding To DataSets Fill the DataSet as usual Then use it as the DataContext Controls use Path to reference Tables Columns
  • 35. Dude, where’s the DataGrid? DataGrid like controls not provided Provided 3d party controls Infragistics Xceed …
  • 36. Debugging Data Binding Binding failures generate debug messages Check the Output window in Visual Studio®
  • 37.