This exercise in binding a WPF ListView control with LINQ to SQL was a lot of fun ! The following image shows data from AdventureWorks sample database displayed in the ListView control. The end result is very admirable, even in this very basic demo. Feeling a complete sense of freedom is unavoidable when working with WPF.
This sample demonstrates :
- LINQ to SQL mapping.
- WPF ListView Control DataBinding.
- Displaying images stored in database as varbinary in WPF control.
The sample code can be downloaded here : WPF-LINQ to SQL Sample
License : Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.









Using Custom Converter in XAML
In my previous post : WPF-LINQ To SQL Sample, I had to resort to modifying .dbml file to get the images stored as varbinary into the WPF ListView control. I had to change the Type of image fields to System.Byte[], instead of using System.Data.Linq.Binary. A better way to do this is to use a custom converter. WPF allows you to specify custom converter as part of the Binding in .xaml, like this -
<Image Grid.Row=\"2\" Source=\"{Binding Path=ThumbNailPhoto , Converter={StaticResource imageConverter}}\"></Image>The custom converter is declared in the same .xaml file as a resource -
ImageDataConverter is implemented in .xaml.cs file -
public class ImageDataConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { byte[] image = ((System.Data.Linq.Binary)value).ToArray(); return image; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } }The updated sample code can be downloaded here : WPF-LINQ to SQL Sample
License : Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
Share This