这是我的班级:
public class Person
{
public string Name { get; set; }
public string Age { get; set; }
public List<Sweet> sweetList { get; set; }
public Person()
{
sweetList = new List<Sweet>();
}
}
public class Sweet
{
public string Id{ get; set; }
}
在MainPage.xaml中设置
DataContext = personList;
在XAML中
<phone:LongListSelector ItemsSource="{Binding personList}" >
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding sweetList.Id}" />
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
如何将此类绑定到XAML? 在结果中我只看到Name,但带有sweetList.Id的textBlock为空 请帮忙
答案 0 :(得分:0)
您正在为'personList'中的每个项目设置项目模板,但您对'sweetList'没有做同样的事情。
由于sweetList是一个List,而不仅仅是一个Sweet,您需要通过执行类似sweetList [0] .Id的操作来访问列表中的第一个,或者您可能希望从列表中显示每个屏幕,在这种情况下,你需要做类似于你对personList做的事情。
答案 1 :(得分:0)
要在WPF中显示集合,您需要使用容器控件,例如ListBox
:
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
<ListBox ItemsSource="{Binding sweetList}">
<ListBox.ItemTemplate>
<TextBlock Text="{Binding Id}" />
</ListBox.ItemTemplate>
</StackPanel>
</DataTemplate>
然后你还需要告诉框架如何显示你的Sweet
类,这是内部ListBox.ItemTemplate
正在做的事情。