请考虑我在实体中有财产
public double RealVolume
{
get
{
return _RealVolume;
}
set
{
SetPropertyValue("RealVolume", ref _RealVolume, value);
}
}
然后我也有
[Browsable(false)]
public VolumeType VolumeOrVolumePoints
{
get
{
return WMSSystemSetting.Get_VolumeOrVolumePoints(Session);
}
}
我希望在VolumeOrVolumePoints == VolumeType.Volume
然后RealVolume
验证为整数,否则验证为双号。
我怎么能实现这个目标?谢谢!
答案 0 :(得分:0)
有关如何使用XPO验证对象的信息,请参阅here。如果您正好使用DevExpress XAF,请使用 ValidationModule中的ValidationRule
。
所以你需要这样的东西:
protected override void OnSaving()
{
if (VolumeOrVolumePoints == VolumeType.Volume)
{
if (RealVolume % 1 != 0) // see http://stackoverflow.com/a/2751597/1077279
throw new Exception("The RealVolume value must be an integer when using Volume units.");
}
}