Как я могу эмулировать ErrorProvider в .NET Compact Framework? - PullRequest
2 голосов
/ 23 апреля 2009

Поскольку в .NETCF нет класса ErrorProvider, как я могу реализовать аналогичную функциональность (не обязательно точно , как ErrorProvider)?

Я использую все обычные конструкции привязки данных для привязки элементов управления к данным, используя свойство DataRow.RowError и метод DataRow.SetColumnError, но я не могу найти события ни в одном из DataTable, BindingManagerBase и т. Д., Которые я могу перехватить в для получения любого вида уведомления.

Я застрял, вызывая метод для ручной итерации всех элементов управления в моей форме и изменения внешнего вида привязанного элемента управления?

Спасибо, МРБ

1 Ответ

0 голосов
/ 15 ноября 2010

Класс ErrorProvider кажется довольно простым - на самом деле, слишком базовым. Если у вас есть Red Gate Reflector , я бы порекомендовал разобрать класс и посмотреть на него. В противном случае создайте Dictionary<Control, String>.

Вот краткая идея по созданию собственного провайдера:

Dictionary<Control, String> ErrorSet = new Dictionary<Control, String>();

public void SetError(Control control, String message)
{
    // code for adding error information
    ErrorSet.Add(control, message);
}

public String GetError(Control control)
{
    // code for retrieving error information
    return ErrorSet[control];
}

public String Clear()
{
    // code for clearing all errors
}

У меня здесь нет отражателя R-G, или я бы предоставил больше примеров. Но это должно послужить примером для работы.

...