Monotouch Dialog Json,EntryElement使用EntryEnded Event

时间:2012-07-17 16:33:52

标签: json events xamarin.ios monotouch.dialog

我需要使用MTD与Json进行dinamycally创建表单,但我还需要检查用户输入:

某些字段可能只接受数字,而其他字段则具有固定长度等 这可以通过一个操作来完成,该操作根据指定的条件检查每个EntryElement值,然后使用一些消息来告诉用户必要的更正。

如果我们的字段数量很少,这是好的,但是当一个字段超过50个字段时,这在可用性方面变得非常尴尬。理想的解决方案是在用户结束输入EntryElement

时通知用户有关更正的信息

现在MTD提供了某种机制来实现这一目标:

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

前提是“field_1”是一个标有id属性且带有“field_1”值
的EntryElement 上面的代码按预期工作,即:当我将焦点更改为另一个部分时,EntryEnded事件激活。现在为了百万美元的问题:

我如何知道Event对应哪个EntryElement?或换句话说。
如何在调用事件时获取EntryElement的ID?

如果以上都不可能是合适的解决方案吗?

提前感谢任何潜在客户,

1 个答案:

答案 0 :(得分:0)

找到了一种方法:

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

这个小东西将打印收到的EntryElement的Section和Row EntryEnded活动。这不完全是获取id,但至少现在我有关于它的位置的信息,从这里我可以得到更多的信息(特别是如果我小心保存在其他地方)

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