Label.Target 属性
有这么一段代码,主要用于数据验证, 来自 http://www.cnblogs.com/webabcd/archive/2009/08/10/1542663.html#2446195
<sdk:Label Target="{Binding ElementName=salary}"/> <TextBox x:Name="salary" Width="100" Text="{Binding Salary, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True}"/> <sdk:DescriptionViewer Target="{Binding ElementName=employee}" PropertyPath="Salary" />
Model
public class EmployeeModel { private double _salary; [Display(Name = "薪水", Description = "0到10000之间")] [Range(0, 10000)] public double Salary { get { return _salary; } set { Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "Salary" }); _salary = value; } } }
虽然label的Content属性没有赋值,但是运行后,会显示“薪水”, 这个就是Target属性的效果。
刚开始的时候不明白,所以对这个属性进行了一番折腾。
Label会优先显示Target element中 [Display(Name = "薪水", Description = "0到10000之间")] 中Name的值。
如果将上面一句中的Name=“薪水”, Label会显示“Salary”, 也就是“Salary”属性的名字。
如果把Label的target属性删掉,又没有给content赋值, 运行后Label就消失了。
同时在Label有target的的情况下, target如果验证错误,label会变红,这个也是Target的效果。Label.IsValid属性可以查看Target的数据是否有效
posted on 2012-08-13 10:21 YanYangjiang 阅读(703) 评论(0) 编辑 收藏 举报