Для приложения, которое динамически изменяет, какие входы отображаются на экране, я создаю все возможное Elements
, а затем создаю Section
, который содержит те, которые мне нужны, с учетом текущих данных.Reuse MonoTouch.Dialog Element
Например, если пользователь взаимодействует с , форма должна быть обновлена, а поля показаны соответственно.
Видимо эта модель не работает, как показано на этом тесте:
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
Ваш подход просто приводит к замороженному интерфейсу для меня. Я думаю, что поеду и заново создаю новый раздел и добавлю его в корневой каталог. – Timm
Может показывать код? – Janub