我已经使用并且熟悉LongListSelector,它具有列出的所有项目的特定项目模板。
现在我尝试实现一个更复杂的LongListSelector,其中添加的项目不是固定高度/特定内容。可能是一个案例中的几个文本块和图像,另一个案例中的相同元素的两倍(它是一组元素,每个项目出现1,2或3次)。
注意:我使用ObservableCollection,它与LongListSelector连接。
ObservableCollection<RouteInformation> Routes = new ObservableCollection<RouteInformation>();
public RoutePage()
{
InitializeComponent();
RoutesLongListSelector.ItemsSource = Routes;
}
我通过从数据库中提取数据来填充列表,最后用
添加它们Routes.Add(new RouteInformation(..., ...));
有什么建议吗?
答案 0 :(得分:0)
在页面资源中定义多个项目模板:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="ItemTemplate3Line">...
</phone:PhoneApplicationPage.Resources>
<LongListSelector x:Name="lls">
并根据您的条件在后面的代码中,选择自定义数据模板:
if (...)
lls.ItemTemplate = Resources["ItemTemplate3Line"] as DataTemplate;