3
对于动态更改屏幕上显示哪些输入的应用程序,我创建了所有可能的Elements
,然后创建一个Section
,其中包含我需要的当前数据。重用MonoTouch.Dialog元素
例如,如果用户与进行交互,则需要更新表格并相应地显示字段。
显然这种模式不工作,如图这个测试用例:
var dateEntry = new DateTimeElement("Timestamp", DateTime.Now);
var section = new Section() { dateEntry };
var root = new RootElement("Root") { section };
var dvc = new DialogViewController(root);
window.RootViewController = dvc;
NSTimer.CreateScheduledTimer (TimeSpan.FromSeconds (2), delegate {
var newSection = new Section() { dateEntry };
dvc.Root.Clear();
dvc.Root.Add(newSection);
});
上面的代码抛出DateTimeElement.FormatDate
一个NullReferenceException
一旦定时器已到。
我也尝试重新创建不仅Section
而且RootElement
,但无济于事。
是否有任何推荐的模式来重用Elements
,或者我应该只是在数据发生变化时创建新的输入?
的的NSTimer是只是为了模拟真实世界的使用情况,在这种情况下,点击一个按钮出现在屏幕几秒钟后,用户。我会尝试你的解决方案,看看它是否有效。 – Timm 2012-03-06 16:22:55
你的方法只会导致我冻结的用户界面。我想我会去重新创建一个“Section”并将其添加到根目录。 – Timm 2012-03-10 13:23:20
可以显示一些代码? – Janub 2012-03-10 13:36:11