Можем ли мы установить свойство исходного объекта при проверке? - PullRequest
0 голосов
/ 08 февраля 2011

У меня есть приложение wpf-mvvm.

В приведенном ниже коде «PartBPremiumBuydown» является экземпляром класса.который имеет два свойства => 1. Значение.и 2. HasValidationError.

Свойство «Значение» используется для привязки к текстовому полю.Если есть какие-либо ошибки проверки ... Могу ли я установить HasValidationError = true?

  <TextBox  ToolTip="{Binding RelativeSource={RelativeSource Self}, 
                      Path=(Validation.Errors).CurrentItem.ErrorContent}">
                        <TextBox.Text>
                            <Binding Path="PartBPremiumBuydown.Value" 
                                      ValidatesOnDataErrors="True"
                                      UpdateSourceTrigger="PropertyChanged"
                             Converter="{x:Static localns:Converters.DecimalToCurrency}">
                                <Binding.ValidationRules>
                                    <localns:CurrencyRule />
                                </Binding.ValidationRules>
                            </Binding>
                        </TextBox.Text>
                    </TextBox>

1 Ответ

1 голос
/ 08 февраля 2011

У вас должна быть PartBPremiumBuydown реализация интерфейса IDataErrorInfo, аналогичного приведенному ниже коду:

public string Error { get; private set; }
public string this[string propertyName]
{
    get
    {
        string mError = string.Empty;
        if (propertyName == "Value" 
            && !<insert your rule>)
        {
            mError = "Validation error text."
        }
        Error = mError;
        return (string.IsNullOrWhiteSpace(mError))// if   NOTHING 
            ? null                                // then return null
            : mError;                             // else return error
    }
}

Теперь, когда вы привязываете свой TextBox к Value, если пользователь вводит текстнарушает ваше правило, ошибка проверки будет отображаться в TextBox.

...