在XAML设置Xamarin的BindingContext中尝试数据绑定时,我无法让我的模型出现......这是我的简化模型代码:
public class LeagueRootObject
{
public League League { get; set; }
public ObservableCollection<Match> Matches { get; set; }
public object Error { get; set; }
}
public class League
{
public int Id { get; set; }
public string Name { get; set; }
public string Code { get; set; }
public DateTime PlayingDate { get; set; }
}
public class Match
{
public MatchDetail MatchDetail { get; set; }
public ObservableCollection<Player> Players { get; set; }
}
public class MatchDetail
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime StartTime { get; set; }
public DateTime EndTime { get; set; }
}
public class Player
{
public PlayerDetail PlayerDetail { get; set; }
public object Rating { get; set; }
public int MatchPlayerId { get; set; }
}
public class PlayerDetail
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
这里是简化的XAML片段:
<ListView ItemsSource="{Binding Path=Matches}" VerticalOptions="StartAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<StackLayout Orientation="Vertical">
<Label Text="{Binding Path=MatchDetail.Name}"/>
<ListView ItemsSource="{Binding Path=Players}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Path=PlayerDetail.FirstName}"/>
<!-- another ViewCell here seems to hide data somehow -->
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
放置在Xamarin StackLayout
的根ContentPage
元素中,其BindingContext
设置为从json正确加载的LeagueRootObject
实例(我已检查过)在调试器中工作)。
上面的XAML代码是我能够做到的最好的事情,因为在内部Label
的{{1}} StackLayout
中包含的ListView
内添加了ViewCell
正确显示...如何向内部ViewCell
添加ListView
(或任何其他类型的单元格)并构建其View
以便它可以显示所有属于所有内部集合对象的数据(我目前只有第一个出现,当有多个玩家时出现问题)...我做错了什么,应该是ListView
不是那样使用,并且有一些其他'View`控件用于外部对象,我想要的是以某种方式显示所有内部对象分组在外部对象中...
由于
答案 0 :(得分:0)
除了我可能在Xamarin风格的XAML上表现不佳之外,你也可能对listviews的工作方式存在错误...因为我刚刚在Windows 10手机上试过上面的代码而且它不会显示任何内容内部集合的数据,但在Android上运行它通过显示多个内部集合姓氏...并在向下滚动到该外部集合对象后,它将使应用程序崩溃。
所以,这可能不是通过属于外部集合注释来显示这样的内部对象列表(以及每个对象旁边的按钮操作)的方法,但我仍然找不到另一个示例XAML。
难道你只能在Xamarin.Forms 2.0中使用foreach循环代码吗?
答案 1 :(得分:0)
如果我正确理解了您的问题,我可以建议您帮助我在ListView中显示ListView的解决方案。