0

動的にフォームを作成するには、Json で MTD を使用する必要がありますが、ユーザー入力を確認する必要もあります。

数値のみを受け入れるフィールドもあれば、固定長などを持つフィールドもあります。
これは、指定された条件に対してすべての EntryElement 値をチェックし、メッセージを使用してユーザーに必要な修正を伝えるアクションで実行できます。

フィールドの数が少ない場合は問題ありませんが、フィールドが 50 を超えると、使いやすさの点で非常に厄介です。理想的な解決策は、ユーザーが EntryElement への入力を終了した瞬間に、修正についてユーザーに通知することです。

現在、MTD はこれを行うための何らかのメカニズムを提供しています。

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

「field_1」が「field_1」値
の id 属性でマークされた EntryElement である場合、上記のコードは期待どおりに機能します。つまり、フォーカスを別の部分に変更すると、EntryEnded イベントがアクティブになります。さて、百万ドルの質問について:

イベントがどの EntryElement に対応するかを知るにはどうすればよいですか? または言い換えれば。
イベントを呼び出すときに EntryElement の ID を取得するにはどうすればよいですか?

上記のいずれも不可能な場合、適切な解決策はどれですか?

リードをお寄せいただきありがとうございます。

4

1 に答える 1

0

それを行う方法を見つけました:

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

この小さなことは、EntryEnded イベントを受け取った EntryElement のセクションと行を出力します。これは正確には ID を取得することではありませんが、少なくとも今はその場所に関する情報を取得しています。これから、さらに多くの情報を取得できます (特に、別の場所に保存するように注意した場合)。

これはおそらく基本的なトリックですが、他の場所では見つかりませんでした!

于 2012-07-26T20:32:01.357 に答える