Try to imagine that you have a list of complex classes and you just want to display just a bunch of properties.
For example:
Person.Firstname,
Person.Lastname,
Person.Address.District.Name,
Person.Cars[0].Brand,
Person.Cars[1].Brand
I was playing around with ValueConverter and found out, that i can return an anonymous type out of the converter and bind it to a textblock’s content.
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is Persons)
{
var persons = (Persons)value;
var query =
from person in persons
let firstname = person.Firstname
let lastname = person.Lastname
let districtname = person.Address.District.Name
let car1 = person.Cars[0].Brand
let car2 = person.Cars[1].Brand
select new
{
Firstname = firstname,
Lastname = lastname,
Districtname = districtname,
Car1 = car1,
Car2 = car2
};
return query;
}
return value;
}
Updating the values as you maybe guess don’t work, but if you dont want to write complex bindings you can use this technique to archive the result.