Я использую Xceed PropertyGrid V.3.5.0 .Я хотел локализовать CategoryAttribute и DisplayNameAttribute свойств объекта, которые должны отображаться как SelectedItem PropertyGrid.Я обработал, чтобы вернуть правильный текст из соответствующих языковых файлов ресурсов.И я достиг изменения DisplayNameAttribute на основе изменения языка пользователя во время выполнения.Но CategoryAttributes не обновляются в пользовательском интерфейсе.Может кто-то помочь мне с этим?Заранее спасибо.
Я использую следующий
- LocalizedDisplayNameAttribute класс, который обрабатывает для возврата текста из соответствующего файла ресурсов во время выполнения. Это работает.Обновление пользовательского интерфейса с изменением языка
class LocalizedDisplayNameAttribute : DisplayNameAttribute
{
private readonly string resourceName;
public LocalizedDisplayNameAttribute(string resourceName) : base()
{
this.resourceName = resourceName;
}
public override string DisplayName
{
get
{
var displayName= TranslationSource.Instance[resourceName];
//here displayName retrieve the value and will be updated in UI
// based on language change at runtime
return displayName;
}
}
}
LocalizedCategoryAttribute класс, который обрабатывает для возврата текста из соответствующего файла ресурсов во время выполнения.
Это не работает public class LocalizedCategoryAttribute : CategoryAttribute
{
readonly string _resourceKey;
public LocalizedCategoryAttribute(string resourceKey)
{
_resourceKey = resourceKey;
}
public new string Category
{
get
{
return TranslationSource.Instance[_resourceKey];
}
}
protected override string GetLocalizedString(string value)
{
string category = TranslationSource.Instance[_resourceKey];
//Here cetegory return value, but its not getting updated in UI
return category;
}
}
Выбранный объект объекта Пример класса модели для PropertyGrid
public class Employee
{
private string _internalGrade;
[LocalizedCategoryAttribute("Catgeory"),
LocalizedDisplayNameAttribute("Grade"),DescriptionAttribute("Some description")]
public string InternalGrade
{
get { return _internalGrade; }
set
{
_internalGrade= value;
}
}
}
Здесь LocalizedDisplayNameAttribute отлично работает LocalizedCategoryAttribute не работает
МожетКто-нибудь помочь мне найти проблему здесь или предложить альтернативное решение для достижения этого сценария?Пожалуйста, задавайте вопросы, если мои вопросы не ясны.