[DisplayName("Planned Amt($):")]
public string PlannedAmount { get; set; }
[DisplayName("Unallocated Amt($):")]
public string UnallocatedAmount { get; set; }
我的类中有这样的成员。基于budgetType变量值,我需要更改这两个属性的DisplayName值。请告诉我怎么做。
您应该能够从DisplayNameAttribute继承并覆盖DisplayName属性:
public class DisplayNameExAttribute : DisplayNameAttribute
{
public override string DisplayName
{
get
{
// do what you want here.
return base.DisplayName;
}
}
}
我实际上还没有尝试实现这一点,所以DisplayName属性可能被编码为必须使用其他扩展点,但我会尝试确认。
您可以像这样从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属性
";季度未分配金额(美元(:";对于UnallocatedAamount属性