2016-12-06 6 views
2

У меня есть простая страница с ListViewXamarin Forms ListView данных Связывание вложенные объекты

<ListView x:Name="ForecastView"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <TextCell Text="{Binding mainData.Temperature}" /> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

Я пытаюсь связать вложенное свойство с помощью . для доступа к нему. Мой источник пункт:

private ObservableCollection<ForecastData> forecast = new ObservableCollection<ForecastData>(); 

Я устанавливаю его в конструкторе:

ForecastView.ItemsSource = forecast; 

Моя модель выглядит так:

public class ForecastData 
    { 
     public MainData mainData; 
..... 
public class MainData 
    { 
     public double Temperature; 
... 

После REST называют мой список заполняется элементами (Я могу их выбрать), но свойство текста пустое. Можете ли вы помочь мне выяснить, что не так. Я пробовал все и ничего не помогал (я прочитал все похожие вопросы о переполнении стека).

+1

«Тамарин формы» – devRicher

+0

Автокоррекция. – Preetygeek

+0

Попробуйте прочитать здесь: http://stackoverflow.com/questions/36985634/xamarin-forms-databinding-separator, http://stackoverflow.com/questions/31041542/how-to-bind-to-a-nested- class-wpf и http://stackoverflow.com/questions/14546347/how-to-use-nested-class-in-wpf-xaml. – EgoPingvina

ответ

5

Проблема в том, что вы пытаетесь привязать к публичному полю.

Свойства могут быть привязаны только к объектам.

Меняем:

public MainData mainData; 

To:

public MainData mainData { get; set; } 

И он должен работать!

Также для Temperature конечно.

+0

Я люблю тебя, Джеральд! – Preetygeek

+1

Хорошо, спасибо! Я тоже смотрел на него, и после этого вы никогда не забудете! –

+0

Да, полные два дня нервов. Теперь я буду помнить навсегда! – Preetygeek

Смежные вопросы