<ListBox Name="lstFileManager" Background ="Transparent" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <WrapPanel/> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemTemplate> <DataTemplate> <Grid Margin="10" Width="100" Height="120"> <Grid.RowDefinitions> <RowDefinition Height="Auto" ></RowDefinition> <RowDefinition Height="Auto" ></RowDefinition> </Grid.RowDefinitions> <Image Source="{Binding Pic}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100"/> <TextBlock Text="{Binding Name}" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" Height="20"/> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
<DataTemplate>里可以添加任意控件,共同组成一个ListBoxItem。
<DataTemplate>的内容可以写到 <Window.Resources>里,绑定到ItemTemplate属性!
<ListBox Name="lstFileManager" Style="{StaticResource ListViewCtrl}" ItemTemplate="{StaticResource LBItemTemplate}">
public class LVData { public string Name { get; set; } public string Pic { get; set; } } ObservableCollection<LVData> LVDatas = new ObservableCollection<LVData>(); public void BindFileManager() { lstFileManager.ItemsSource = LVDatas; }
数据绑定
BindFileManager(); LVDatas.Add(new LVData { Name = "图片", Pic = "http://www.google.com/intl/en_ALL/images/logo.gif" }); LVDatas.Add(new LVData { Name = "图片", Pic = "http://www.google.com/intl/en_ALL/images/logo.gif" });
参考:https://blog.csdn.net/qq_18995513/article/details/54644856