WPF + Xceed PropertyGrid,无法在UI中本地化CategoryAttribute

时间:2019-02-18 08:51:12

标签: wpf wpftoolkit propertygrid xceed

我正在使用 Xceed PropertyGrid V.3.5.0 。我想本地化要显示为PropertyGrid的SelectedItem的对象属性的 CategoryAttribute DisplayNameAttribute 。我已经设法从相应的语言资源文件中返回正确的文本。我实现了在运行时根据用户语言更改来更改 DisplayNameAttribute 。但是 CategoryAttributes 不会在UI中更新。有人可以帮我弄这个吗?预先感谢。

我正在使用以下

  1. 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;
        }
    }
}
  1. 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;
    }
}
  1. PropertyGrid的选定Item对象模型示例类
public class Employee
{
    private string _internalGrade;
    [LocalizedCategoryAttribute("Catgeory"), 
    LocalizedDisplayNameAttribute("Grade"),DescriptionAttribute("Some description")]
    public string InternalGrade
    {
        get { return _internalGrade; }
        set
        {
            _internalGrade= value;
        }
    }
}

在这里 LocalizedDisplayNameAttribute 工作正常 LocalizedCategoryAttribute 不起作用

有人可以帮助我在这里找到问题或提出替代解决方案来实现此方案吗?如果我的问题不清楚,请提出问题。

0 个答案:

没有答案