/ / Monotouch Dialog Json, EntryElement використовує EntryEnded Event - json, events, xamarin.ios, monotouch.dialog

Діалог Monotouch Json, EntryElement використовують EntryEnded Event - json, події, xamarin.ios, monotouch.dialog

Мені потрібно використовувати MTD з Json для динамічного створення форм, але також мені потрібно перевірити введення користувачем:

Деякі поля можуть приймати лише цифри, а інші мають фіксовану довжину тощо.
Це можна зробити за допомогою дії, яка перевіряє кожне значення EntryElement за вказаними умовами, а потім за допомогою деяких повідомлень повідомляє користувачеві про необхідні виправлення.

Якщо у нас невелика кількість полів, це нормально, алеколи у когось більше 50 полів, це виявляється дуже незручним з точки зору зручності використання. Ідеальним рішенням буде повідомлення користувача про виправлення в момент, коли користувач закінчує вводити текст у EntryElement

Зараз MTD пропонує якийсь механізм для цього:

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

За умови, що "field_1" - це EntryElement, позначений атрибутом id зі значенням "field_1"
Вищезазначений код працює належним чином, тобто: Коли я зміню фокус на іншу частину, активується подія EntryEnded. Тепер питання мільйона доларів:

Як мені дізнатися, якому EntryElement відповідає Подія? або іншими словами.
Як отримати ідентифікатор EntryElement під час виклику Події?

Якщо нічого з вищезазначеного неможливо, яке буде підходящим рішенням?

Заздалегідь дякуємо за будь-які потенційні клієнти,

Відповіді:

0 для відповіді № 1

Знайшли спосіб зробити це:

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

Ця дрібниця надрукує Розділ таРядок елемента EntryElement, який отримано подія EntryEnded. Це не зовсім так, як отримання ідентифікатора, але принаймні зараз я маю інформацію про його місцезнаходження, і звідси я можу отримати набагато більше інформації (особливо, якщо я подбав про те, щоб зберегти його де-небудь ще)

Це, мабуть, основний фокус, але я його ніде не знайшов!