[DisplayName("Planned Amt($):")]
public string PlannedAmount { get; set; }
[DisplayName("Unallocated Amt($):")]
public string UnallocatedAmount { get; set; }
我的班级中有这些成员。基于budgetType变量值,我需要更改两个属性的DisplayName值。请让我知道如何做到这一点。
答案 0 :(得分:1)
您应该只能从DisplayNameAttribute继承并覆盖DisplayName属性:
public class DisplayNameExAttribute : DisplayNameAttribute
{
public override string DisplayName
{
get
{
// do what you want here.
return base.DisplayName;
}
}
}
我实际上并没有尝试过这样做,因此有可能对DisplayName属性进行编码,以便必须使用其他扩展点,但我会尝试确认。
答案 1 :(得分:1)
您可以像这样从DisplayNameAttribute继承:
public class BudgetDisplayNameAttribute : DisplayNameAttribute
{
public BudgetDisplayNameAttribute(string pBaseName) : base(pBaseName) { }
public override string DisplayName
{
get
{
return My.BudgetType + " " + base.DisplayName;
}
}
}
在此示例中,My.BudgetType是公共静态类中的公共静态字符串:
public static class My
{
public static string BudgetType = "Quarterly";
}
然后将属性应用于您的属性,如下所示:
[BudgetDisplayName("Planned Amt($):")]
public string PlannedAmount { get; set; }
[BudgetDisplayName("Unallocated Amt($):")]
public string UnallocatedAmount { get; set; }
最后,使用属性的DisplayName属性的程序部分将获得文本:
“季度计划金额($):”作为PlannedAmount属性
UnallocatedAmount属性的“季度未分配金额($):”