我有这个C#对象(Current,Monitor.CarNumber值是123456)
public class Monitor
{
[Display(Name = "This is car number")]
public string CardNumber { get; set; }
}
在WPF中,标签控件显示Monitor.CardNumber
<Label Content={Binding CardNumber} />
(当我运行程序时。它显示123567,它工作正常)。
现在我不希望它显示CardNumber的值,我希望它显示&#34;这是车号&#34; (CardNumber属性的数据注释)。
我该怎么做? (没有C#代码,只修改上面的XML代码)
答案 0 :(得分:1)
您应该使用Converter
和Reflection
的组合来获取绑定中的显示名称。
当您使用CardNumber
绑定标签时,Converter将使用Reflection查找附加属性,如果找到DisplayAttribute
,将返回Binding属性的Name属性,否则返回CardNumber。
This回答将帮助您使用Reflection获取Display.Name。
这看起来并不像我所回答的那么简单,因为你必须将属性名称传递给转换器。