как добавить EntryCell в содержимое Xamarin.Forms

Я новичок в Xamarin.Forms и пытаюсь использовать EntryCell

AccountId = new EntryCell {Label="Account Id", Text = CustomersPage.staticCustomer.AccountId};

Когда я пытаюсь добавить EntryCell на страницу контента:

Content = new StackLayout {
    Children = {
        AccountId              
    }
};

Я получаю следующую ошибку:

Лучший перегруженный метод добавления «System.Collections.Generic.ICollection.Add(Xamarin.Forms.View)» для инициализатора коллекции имеет некоторые недопустимые аргументы.

Почему я не могу добавить EntryCell напрямую, как Entry?


person Mike Darwish    schedule 14.03.2016    source источник
comment
Я не думаю, что EntryCell можно напрямую вставить в StackLayout. Я считаю, что он принадлежит TableView. См. документацию здесь, developer.xamarin.com/api/type/ Xamarin.Forms.EntryCell .   -  person Bearcat9425    schedule 14.03.2016
comment
@ Bearcat9425 спасибо ... на самом деле только сейчас я делаю то же самое, я использовал TableView, но я хочу знать, почему ?!   -  person Mike Darwish    schedule 14.03.2016


Ответы (2)


EntryCell не является производным от View, поэтому вы не можете добавить его в качестве дочернего в StackLayout дочернюю коллекцию.

EntryCell предназначен для использования с управлением ListView (также с TableView), как правило, из-за соображений производительности. EntryCell происходит от Cell, которое обеспечивает описание визуального элемента, а не является визуальным элементом.

С другой стороны, Entry происходит от View, поэтому вы можете добавить его к StackLayout.

person Arkadiusz K    schedule 14.03.2016
comment
@ArkaduisZ К... спасибо. но я хочу использовать EntryCell, потому что мне нужно использовать метку и текст одновременно.. я использовал такой TableView.. не могли бы вы использовать мой код в своем ответе TableView tb = new TableView(); tb.Root = new TableRoot() { new TableSection (Tcetra Info) { AccountId }}; Content = new StackLayout { Children = { tb, ProcessToCheckOut } }; - person Mike Darwish; 14.03.2016
comment
Вы всегда можете отредактировать свой вопрос и добавить дополнительный вопрос/объяснение :) - person Arkadiusz K; 14.03.2016
comment
Почему нельзя было создать ярлык и запись? если они вам нужны рядом, вы можете установить для параметров ориентации stackLayout значение Horizontal. - person Bearcat9425; 14.03.2016
comment
Точно так же, как написал @Bearcat9425, вы можете размещать элементы пользовательского интерфейса так, как хотите. - person Arkadiusz K; 14.03.2016

Actullay Я искал возможность использовать Label And Text одновременно, так что, как сказал @Arkadiusz

Я использовал TableView следующим образом:

  TableView tb = new TableView(); 
  tb.Root = new TableRoot() { new TableSection("Info") { AccountId }};        
  Content = new StackLayout { Children={ tb, ProcessToCheckOut } }

или мне нужно использовать Entry && Label вместо EntryCell и изменить ориентацию stackLayout на Horizontal

person Mike Darwish    schedule 14.03.2016