Silverlight 3 не поддерживает привязку данных к анонимным типам.
Вам нужно создать простой класс, в который будут помещены ваши свойства.
Вот метод ValueConverter:
namespace SilverlightApplication55
{
using System;
using System.Windows;
using System.Windows.Data;
public class NamedPropertyConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || parameter == null)
{
return null;
}
var propertyName = parameter.ToString();
var property = value.GetType().GetProperty(propertyName);
if (property == null)
{
return null;
}
return property.GetValue(value, null);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
}
Затем вы помещаете это в свой UserControl. Ресурсы:
<local:NamedPropertyConverter x:Key="NamedPropertyConverter"/>
И здесь вы хотите использовать именованный параметр - передайте его с помощью ConverterParameter:
<TextBlock Text="{Binding Converter={StaticResource NamedPropertyConverter}, ConverterParameter=Estatus}"/>