/ / Monotouch Dialog Json, EntryElement use EntryEnded Event - json, events, xamarin.ios, monotouch.dialog

Monotouch Dialog Json, EntryElement używa EntryEnded Event - json, events, xamarin.ios, monotouch.dialog

Muszę używać MTD z Json, aby tworzyć formularze w sposób dynamiczny, ale muszę też sprawdzić dane wejściowe użytkownika:

Niektóre pola mogą akceptować tylko liczby, a inne mają stałą długość itp.
Można to zrobić za pomocą akcji, która sprawdza każdą wartość EntryElement pod kątem określonych warunków, a następnie za pomocą komunikatów informujących użytkownika o niezbędnych poprawkach.

Jeśli mamy małą liczbę pól, to jest OK, alegdy ma się więcej niż 50 pól, wtedy okazuje się to bardzo niewygodne pod względem użyteczności. Idealnym rozwiązaniem byłoby powiadamianie użytkownika o poprawkach w momencie zakończenia wpisywania elementu EntryElement

Teraz MTD zapewnia pewien mechanizm, aby to zrobić:

JsonElement jsonElement;
jsonElement = JsonObject.Load("file.json");
((EntryElement) jsonElement["field_1"]).EntryEnded = delegate { doSomething();};

Pod warunkiem, że „field_1” jest EntryElement oznaczonym atrybutem id z wartością „field_1”
Powyższy kod działa zgodnie z oczekiwaniami, tj .: Kiedy zmieniam fokus na inną część, aktywuje się zdarzenie EntryEnded. A teraz pytanie za milion dolarów:

Skąd mam wiedzieć, któremu elementowi EntryElement odpowiada wydarzenie? lub innymi słowy.
Jak uzyskać identyfikator EntryElement podczas wywoływania zdarzenia?

Jeśli żadne z powyższych nie jest możliwe, jakie byłoby odpowiednie rozwiązanie?

Z góry dziękuję za wszelkie leady,

Odpowiedzi:

0 dla odpowiedzi № 1

Znalazłem sposób, aby to zrobić:

((EntryElement)jsonElement ["field_1"]).EntryEnded += (object sender, EventArgs e ) =>
{
NSIndexPath pt = ((EntryElement)sender).IndexPath;
Console.WriteLine("section: "+pt.Section+" row: "+pt.Row);
};

Ta mała rzecz wydrukuje sekcję i plikWiersz elementu EntryElement, który otrzymał zdarzenie EntryEnded. To nie jest dokładnie tak, jak uzyskanie identyfikatora, ale przynajmniej teraz mam informacje o jego lokalizacji i dzięki temu mogę uzyskać o wiele więcej informacji (szczególnie jeśli zadbałem o to, aby zapisać go w innym miejscu)

To prawdopodobnie podstawowa sztuczka, ale nie znalazłem jej nigdzie indziej!