Как определить пользовательскую проверку для свойства в DevExpress?

Пожалуйста, учтите, что у меня есть объект

        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 быть проверенным как целое число, иначе как двойное число.

Как я мог этого добиться? Спасибо!

1 ответ

Для получения информации о том, как проверить объект с XPO, смотрите здесь. Если вы используете DevExpress XAF, используйте ValidationRule из модуля проверки вместо этого.

Так что вам нужно что-то вроде:

protected override void OnSaving() 
{
    if (VolumeOrVolumePoints == VolumeType.Volume)
    {
        if (RealVolume % 1 != 0) // see http://stackru.com/a/2751597/1077279
             throw new Exception("The RealVolume value must be an integer when using Volume units.");
    }
}
Другие вопросы по тегам