我正在使用 Xceed PropertyGrid V.3.5.0 。我想本地化要显示为PropertyGrid的SelectedItem的对象属性的 CategoryAttribute 和 DisplayNameAttribute 。我已经设法从相应的语言资源文件中返回正确的文本。我实现了在运行时根据用户语言更改来更改 DisplayNameAttribute 。但是 CategoryAttributes 不会在UI中更新。有人可以帮我弄这个吗?预先感谢。
我正在使用以下
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;
}
}
}
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;
}
}
public class Employee
{
private string _internalGrade;
[LocalizedCategoryAttribute("Catgeory"),
LocalizedDisplayNameAttribute("Grade"),DescriptionAttribute("Some description")]
public string InternalGrade
{
get { return _internalGrade; }
set
{
_internalGrade= value;
}
}
}
在这里 LocalizedDisplayNameAttribute 工作正常 LocalizedCategoryAttribute 不起作用
有人可以帮助我在这里找到问题或提出替代解决方案来实现此方案吗?如果我的问题不清楚,请提出问题。