是否有教程或其他解释,如何在GridView Cell / DataTemplate的单个单元格中显示数据列表(例如图像列表)?
ListView / GridView的源数据是这样的:
class Item
{
public string Name { get; set; }
public int Age { get; set; }
public string Mail { get; set; }
public List<ItemImages> Images { get; set; }
}
class ItemImages
{
public string Name { get; set; }
}
正如您所看到的,应该在单元格内显示的其中一个成员本身就是一个列表。如果它是图像,字符串或其他内容的列表并不重要。
林&#39;只是寻找如何在单元格中显示任何类型的列表的起点。
答案 0 :(得分:1)
这很简单。您应该填充项目控件,例如ComboBox
。让我举个例子:
XAML:
<ListView Margin="10" Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Age" Width="50" DisplayMemberBinding="{Binding Age}" />
<GridViewColumn Header="Mail" Width="150" DisplayMemberBinding="{Binding Mail}" />
<GridViewColumn Header="Images">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding Images}" DisplayMemberPath="Name"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
代码背后:
public partial class FooBarSample : Window
{
public FooBarSample()
{
InitializeComponent();
PopulateCollection()
}
}
private void PopulateCollection()
{
ObservableCollection<Item> items = new ObservableCollection<Item>();
items.Add(new Item() { Name = "Jack London", Age = 42, Mail = "jackLondon@london-family.com", Images = new List<ItemImages>()
{
new ItemImages() {Name="1" }, new ItemImages() {Name="2" }, new ItemImages() {Name="3" },
} });
listView.ItemsSource = items;
}