我试图通过FlipView元素显示集合集合,我在使用正确的绑定设置时遇到问题。我必须为DataTemplate元素设置x:DataType,但我找不到任何方法来设置List类型。
这是我的例子。它只是一个原型项目,所以我不使用MVVM使其变得更简单:
public sealed partial class MainPage : Page
{
public List<List<CustomItems>> ItemList;
public MainPage()
{
this.InitializeComponent();
ItemList = new List<List<CustomItems>>();
List<CustomItems> tlist = new List<CustomItems>();
tlist.Add(new CustomItems { title = "test1", text = "first text", url = new Uri("http://microsoft.com") });
ItemList.Add(tlist);
tlist = new List<CustomItems>();
tlist.Add(new CustomItems { title = "test2", text = "second text", url = new Uri("http://google.com") });
tlist.Add(new CustomItems { title = "test2-1", text = "second 1 text", url = new Uri("http://gmail.google.com") });
tlist.Add(new CustomItems { title = "test2-2", text = "second 2 text", url = new Uri("http://drive.google.com") });
ItemList.Add(tlist);
tlist = new List<CustomItems>();
tlist.Add(new CustomItems { title = "test3", text = "third text", url = new Uri("http://stackoverflow.com") });
ItemList.Add(tlist);
我的xaml:
<Page
x:Class="grids.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:grids"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" Width="850" Height="600"
xmlns:data="using:grids.Models"
>
<Grid Width="850" Height="600" >
<FlipView x:Name="gridView" HorizontalAlignment="Left" Margin="0,0,0,0" VerticalAlignment="Top"
Width="850" ItemsSource="{x:Bind ItemList}">
<FlipView.ItemTemplate>
<DataTemplate x:DataType="WHAT_SHOULD_BE_HERE?">
<FlipView ItemsSource="{x:Bind}">
<FlipView.ItemTemplate>
<DataTemplate x:DataType="data:CustomItems">
<StackPanel>
<TextBlock Text="{x:Bind title}"></TextBlock>
<WebView Source="{x:Bind url}" Width="850" Height="400" />
</StackPanel>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
</Grid>
</Page>
使用x:Bind我必须设置x:DataType,但是我告诉我没有看到为第一个FlipView设置List-type的任何方法。我曾尝试使用指向System.Collections.Generic的单独xml,但我不能从那里使用List。在某个地方,我已经看到了创建自己继承自List&gt;的类的建议,我也尝试过,xaml代码检查然后允许我构建项目,但是我得到了运行时异常:&& #34;抛出new global :: System.ArgumentException(&#34;传递给模板的类型不正确。基于x:DataType global :: grids.Models.MyCollection是预期的。&#34;);&#34; 那么任何人都可以解释一下,这样做的正确方法是什么?