我正在使用Monotouch.Dialog开发一个单位转换器,我有一个如下所示的主窗口:
当我点击数量元素时,选择一个新数量并返回主窗口,我想用一个与所选数量相关联的单位表更新单位元素。
我最初的想法是更新事件处理程序中的单位,这些单位将在完成数量选择后调用。但是,当我从数量选择中返回时,我无法在MT.D API中找到触发的事件。是否存在我可以采取行动的事件,或者是否有其他方式可以进行单位更新?
原则上,我的AppDelegate.FinishedLaunching
方法现在看起来像这样:
public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
_window = new UIWindow (UIScreen.MainScreen.Bounds);
_quantityGroup = new RadioGroup("Qty", 0);
_fromUnitGroup = new RadioGroup("FromU", 0);
_toUnitGroup = new RadioGroup("ToU", 0);
var quantityElem = new RootElement("Quantity", _quantityGroup) {
new Section() { new RadioElement("AbsorbedDose", "Qty") as Element, ... }};
var fromUnitElem = new RootElement("Unit", _fromUnitGroup) { new Section() };
var toUnitElem = new RootElement("Unit", _toUnitGroup) { new Section() }
_rootElement = new RootElement ("Unit Converter")
{
new Section() { quantityElem },
new Section("From") { new EntryElement(...), fromUnitElem },
new Section("To") { new EntryElement(...), toUnitElem }
};
_rootVC = new DialogViewController(_rootElement);
_nav = new UINavigationController(_rootVC);
_window.RootViewController = _nav;
_window.MakeKeyAndVisible();
return true;
}
答案 0 :(得分:2)
正如杰森在上面的评论中指出的那样,此问题先前已在SO here上得到解决。
解决方案是扩展RadioElement
类,其中继承类包含OnSelected
事件,并使用调用RadioElement.Selected
事件的方法覆盖OnSelected
方法处理器(一个或多个)。