0

我正在使用 Monotouch.Dialog 开发一个单位转换器,我有一个如下所示的主窗口:

单位转换器主窗口

当我点击 Quantity 元素,选择一个新的 Quantity 并返回到主窗口时,我想用与所选数量关联的单位表来更新 Unit 元素。

我最初的想法是在完成数量选择后调用的事件处理程序中更新单位。但是,当我从数量选择返回时,我无法在 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;
}
4

1 回答 1

2

正如 Jason 在上面的评论中指出的那样,这个问题之前已经在 SO 上解决了,here

解决方案是扩展RadioElement类,其中继承类包含一个OnSelected事件,并且该RadioElement.Selected方法被一个调用OnSelected事件处理程序的方法覆盖。

于 2012-05-31T11:05:15.350 回答