我正在用 MVVM 编写 xamarin 天气预报应用程序。
我填写ObservableCollection<DailyWeather>和ObservableCollection<HourlyWeather>。
在视图模型中
private ObservableCollection<DailyWeather> dailyWeather;
public ObservableCollection<DailyWeather> DailyWeather
{
get => dailyWeather;
set
{
dailyWeather = value;
OnPropertyChange();
}
}
楷模
public class DailyWeather
{
public int DayOfYear { get; set; }
public ObservableCollection<HourlyWeather> HourlyWeather { get; set; }
}
public class HourlyWeather
{
public string Temperature { get; set; }
public string Time { get; set; }
}
Xaml 代码
<ListView ItemsSource="{Binding DailyWeather, Source={StaticResource vm}}"
RowHeight="200">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding DayOfYear}"/>
<ListView ItemsSource="{Binding HourlyWeather}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Temperature}"/>
<Label Text="{Binding Time}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
父 ListView 输出集合和“DayOfYear”。
Child ListView 输出集合并看到对象属性“温度”和“时间”但不输出它们,为什么?
所有收藏都已填满。
为什么如果我从 ListViews 中删除 ViewCell 那么应用程序会出现“指定的演员表无效”异常?

