【WPF】实现Winform中ListView效果(ListBox横向排列)

    <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

/*******相与枕藉乎舟中,不知东方之既白*******/
原文地址:https://www.cnblogs.com/Mars-0603/p/15357326.html