0

我需要使用 MTD 和 Json 来动态创建表单,但我还需要检查用户输入:

一些字段可能只接受数字,而另一些字段具有固定长度等。
这可以通过根据指定条件检查每个 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 事件激活。现在对于百万美元的问题:

我如何知道 Event 对应于哪个 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的Section和Row。这与获取 id 不完全一样,但至少现在我有关于它的位置的信息,并且从中我可以获得更多信息(特别是如果我小心地将它保存在其他地方)

这可能是一个基本技巧,但我在其他任何地方都没有找到它!

于 2012-07-26T20:32:01.357 回答