2012-11-20 21 views
5

To dmucha mój umysł, że oficjalny dokument w MSDN nie mówi nic o tym, co bazowy typ przedmiotu przeliczalny że zwracany przez getErrors z INotifyDataErrorInfo powinno być: http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo.geterrors(v=vs.95).aspxJaki typ IEnumerable powinien zwrócić INotifyDataErrorInfo.GetErrors?

opcje: System.String, System.Object , MyCustomObject, ISomeOtherShitThatDoesntHaveAnythingToDoWithValidationWhatsoever

Czy ktoś może mi wyjaśnić, w jaki sposób arbitralny przeliczalny obiektu może być OK powiadamiania o błędach bez żadnych założeń co do jego struktury?

Odpowiedz

4

The docs for INotifyDataErrorInfo podać więcej informacji:

Błędy walidacji zwracane przez metody getErrors może być dowolnego typu. Jeśli jednak zaimplementujesz niestandardowy typ błędu, pamiętaj, aby zastąpić metodę ToString, aby zwrócić komunikat o błędzie. Silverlight używa tego ciągu w domyślnym raporcie o błędach.

Własne obiekty błędów są użyteczne, gdy udostępniasz niestandardowe raporty o błędach w interfejsie użytkownika. Na przykład można utworzyć szablon dla Report ToolTip, który łączy się z właściwością ErrorLevel, aby wyświetlać ostrzeżenia w kolorze żółtym, a błędy krytyczne na czerwono.

Jest ogniwem w sekcji Przykłady w GetErrors powrotem do tej dokumentacji:

Dla przykładu implementacji tej metody, zobacz przegląd INotifyDataErrorInfo klasy.

zgadzam się, że to mniej jasne niż mogłyby być, ale dokumentacja jest tam ...

+0

Dzięki, że byłoby miło, aby zobaczyć tę część na stronie bezpośrednio związane z metodą getErrors :) –

+0

@bonomo : Zgadzam się, ale zajęło mi to około minuty, aby go znaleźć, nigdy wcześniej nie korzystałem z tego interfejsu :) –

+0

Spędziłem 20 minut za darmo zamiast pracować nad prawdziwym problemem, po prostu nie jestem wystarczająco inteligentny i nie mam wiele czas na rozwiązywanie zagadek MSDN :) –