Загрузка существующих данных в MonoTouch.Dialog

Я новичок в MonoTouch из фона VS/С# и пытаюсь переписать существующее приложение С#. Я сделал одно простое приложение MonoTouch, которое успешно загружает данные в список‹> из XML-файла, и начал добавлять код Master/Detail, когда обнаружил существование MonoTouch.Dialog, который, похоже, значительно облегчит мою работу. Поэтому я начал новый проект, используя пример кода по адресу http://docs.xamarin.com/ios/tutorials/MonoTouch.Dialog , изменив базовый класс, чтобы он соответствовал тому, что мне было нужно.

Но я застрял в попытке предварительно заполнить DialogViewController моим существующим списком‹>. Я пытался использовать LoadMoreElement, но не могу найти пример его использования и не знаю, лучший ли это способ сделать это.


person quilkin    schedule 16.06.2012    source источник


Ответы (2)


Спасибо Андерс. В промежуточный период я ​​обнаружил другой метод:

            _rootElement = new RootElement ("Riders") 
        {
            new Section()
            {
                from x in riderList.Riders select (Element) new RootElement(x.Name) 
                {
                    new Section()
                    {
                        new StringElement("Rider",x.Name),
                        new StringElement("Club",x.Club),
                        ....
                        ....

... я попробую оба и посмотрю, что подходит лучше всего. Но я изо всех сил пытаюсь найти какую-либо документацию для описания методов для классов диалога, например. Section.AddAll() и другие, используемые в предоставленной вами ссылке.

person quilkin    schedule 17.06.2012
comment
Вот ссылка на API Monotouch, а это ссылка на подмножество API Monotouch.Dialog. - person Anders Gustafsson; 18.06.2012
comment
Хорошо спасибо. Я просматривал страницу документации на компьютере с Windows, и в списке слева не отображаются соответствующие страницы, когда узлы развернуты (как в IE, так и в Firefox). Он работает нормально только с Safari на Mac! - person quilkin; 19.06.2012

Если вы хотите создать список в существующем диалоговом окне, вы можете, например, создать пустой Section и в этот раздел добавить список элементов из списка как RadioElement:s или CheckboxElement: с, в зависимости от того, сколько элементов вы хотите выбрать одновременно.

Чтобы облегчить выбор, вам может потребоваться создать Group/RadioGroup и ссылаться на эту группу при создании соответствующих элементов списка в своем разделе.

Вот краткий пример создания нового Section и добавления элементов списка, предполагая, что одновременно может быть выбран только один элемент:

var list = new List<SomeClass> { ... };

var listGroup = new RadioGroup("grp", 0);
var listSection = new Section();

listSection.AddAll(list.Select(elem => 
    new RadioElement(elem.ToString(), "grp") as Element));

Если вам нужна более специализированная обработка элементов в списке или событий, связанных с действиями списка, вы можете создать подкласс RadioElement или CheckboxElement. Хороший пример того, как это сделать, есть в ответе на этот вопрос SO< /а>.

person Anders Gustafsson    schedule 17.06.2012