Xamarin Forms ListView 数据绑定嵌套对象

4

我有一个简单的页面,其中包含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 调用后,我的列表被元素填充(我可以选择它们),但文本属性为空。你能帮我找出问题出在哪里吗?我已经尝试了所有方法,但没有什么帮助(我已经阅读了 Stack Overflow 上所有类似的问题)。


1
"Tamarin表单" - devRicher
尝试阅读以下内容:https://dev59.com/pFoU5IYBdhLWcg3w5pya、http://stackoverflow.com/questions/31041542/how-to-bind-to-a-nested-class-wpf 和 https://dev59.com/dmUq5IYBdhLWcg3wYvZ6. - EgoPingvina
1
你只能绑定公共属性(具有getter和setter),而不能绑定公共变量或方法。 - Jason
1个回答

7
问题在于你试图绑定到一个公共字段。
你只能绑定到属性。
所以将其改为:
public MainData mainData;

致:

public MainData mainData { get; set; }

它应该能够正常工作!

当然,还有温度


我爱你,杰拉尔德! - Prettygeek
1
非常感谢!我自己也盯着它看了一段时间,之后就再也不会忘记了! - Gerald Versluis
是的,整整两天都是紧张的。现在我将会永远记得! - Prettygeek
当MainData模型有一个子类是列表时,如何绑定信息? - Thamarai T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接