У меня есть класс 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;
}
}
и привязать некоторые элементы управления к этому следующим образом:
<TextBlock Text="{Binding Strings.User, Source={StaticResource Localizer}}"/>
При запуске приложения я получаю эту ошибку в выводе VS:
System.Windows.Ошибка данных: ошибка пути BindingExpression: свойство 'Login' не найдено в '.... Localization.StringsResource' '.... Localization.StringsResource' (HashCode = 10857028).BindingExpression: Path = 'Strings.Login' DataItem = '.... Localization.Localizer' (HashCode = 30604389);Целевым элементом является 'System.Windows.Controls.Button' (Name = 'btnLogin');Свойство target - «Content» (тип «System.Object»).
, но когда свойство чтения в коде выглядит так:
string UserName = localizer.Strings.Login;
Это работает правильно, возможно ли привязать элементы управления кDynamicObject в xaml?