我可以将silverlight控件绑定到DynamicObject.Properties吗?

我可以将silverlight控件绑定到DynamicObject.Properties吗?,silverlight,binding,dynamic,Silverlight,Binding,Dynamic,我有一个DynamicObject类,它绑定到silverlight xaml中的一些控件 class Localizer { public Strings Strings { get; set; } } public class Strings : DynamicObject { Dictionary<string, string> values; public Strings(Dictionary<string, string> value

我有一个DynamicObject类,它绑定到silverlight xaml中的一些控件

class Localizer
{
    public Strings Strings { get; set; }
}

public class Strings : DynamicObject
{
    Dictionary<string, string> values;

    public Strings(Dictionary<string, string> values)
    {
        this.values = values;
    }

    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
        string value;
        bool success = values.TryGetValue(binder.Name, out value);
        result = value;
        return success;
    }
}

它工作正常,是否可以在xaml中将控件绑定到DynamicObject?

不幸的是,这是silverlight中的一个bug,:(

在Silverlight 4中,您不能数据绑定属性,但可以数据绑定索引器。因为我假设您不支持字符串对象中的实时数据更改,因为它不支持
InotifyPropertyChanged
,所以您可以返回字典并使用索引器绑定语法

但是,如果您确实需要支持InotifyPropertyChanged,silverlight具有用于通知特定索引器值的更改的语法
可以在String对象中使用的新PropertyChangedEventArgs(“Item[“+key+”])

Silverlight 5可能有一个简单的,也可能有一个困难的,现在很难说

<TextBlock Text="{Binding Strings.User, Source={StaticResource Localizer}}"/>
string UserName = localizer.Strings.Login;