Monotouch.Dialog:在RadioElement表中选择后,如何更新依赖表?

时间:2012-05-29 15:48:52

标签: c# xamarin.ios monotouch.dialog

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

Unit converter main window

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

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

1 个答案:

答案 0 :(得分:2)

正如杰森在上面的评论中指出的那样,此问题先前已在SO here上得到解决。

解决方案是扩展RadioElement类,其中继承类包含OnSelected事件,并使用调用RadioElement.Selected事件的方法覆盖OnSelected方法处理器(一个或多个)。