Я испытываю выполненную проверку с использованием кода.Мои данные отображаются в сетке данных.Один из столбцов (тип) представляет собой раскрывающийся список, и при изменении раскрывающегося меню он вызывает событие DropDownClosed, которое обрабатывается в приведенном ниже коде.
То, что я пытаюсь достичь, - это проверить содержимоеследующий столбец, чтобы соответствовать вновь выбранному типу в раскрывающемся списке.Если он не совпадает, я хочу, чтобы ошибка проверки отображалась в сетке.Я реализовал свою проверку с использованием интерфейса INotifyDataErrorInfo, и он работает очень хорошо, за исключением случаев, когда я использую его в коде.Когда код позади вызывает проверку, ValidationSummary сетки данных никогда не обновляется.Что я тут не так делаю ???При использовании отладчика я ясно вижу ошибки, добавляемые в словарь ошибок интерфейса ...
Вот обработчик:
private void TypeBoxChanged(object sender, EventArgs e)
{
ComboBox box = (sender as ComboBox);
IncomingPolicy row = (IncomingPolicy)box.DataContext;
string ruleTypeValue = TypeList.GetKeyForText(box.SelectedItem.ToString());
//check if the type is the same
if(row.TypeWrapper == ruleTypeValue)
return;
if (row.ValidateRule(ruleTypeValue))
{
//SAVE the record
}
else
{
row.RaiseErrorsChanged("RuleWrapper");
}
}
Метод правила проверки будет основан наruletypevalue вызов этого метода
public bool ValidateRegularExpression(string property, string value, string expression, string errorMessage)
{
bool isValid = true;
Regex regex = new Regex(expression);
Match match = regex.Match(value);
if (match.Success)
{
RemoveError(property, errorMessage);
}
else
{
AddError(property, errorMessage, false);
isValid = false;
}
return isValid;
}
Я следовал примеру реализации на MSDN http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo%28VS.95%29.aspx