C# 在gridview中将列表中的项目显示到列上

C# 在gridview中将列表中的项目显示到列上,c#,wpf,listviewitem,gridviewcolumn,C#,Wpf,Listviewitem,Gridviewcolumn,我试图在列表框中显示文件的名称和路径。例如,名称应位于文件头文件名下,路径应位于文件路径下。我不想绑定到任何xmls,因为我有一个显示文件名和大小的代码。我是新手,不知道该怎么做。谢谢 我不知道如何在没有看到您试图绑定的任何代码或数据结构的情况下帮助您,但我会试一试 假设您试图绑定C:\MyFolder目录中文件的名称和路径,并且网格视图的名称为grd_MyGrid: string[] myFiles = Directory.GetFiles("C:\\MyFolder\\"); var fi

我试图在列表框中显示文件的名称和路径。例如,名称应位于文件头文件名下,路径应位于文件路径下。我不想绑定到任何xmls,因为我有一个显示文件名和大小的代码。我是新手,不知道该怎么做。谢谢

我不知道如何在没有看到您试图绑定的任何代码或数据结构的情况下帮助您,但我会试一试

假设您试图绑定C:\MyFolder目录中文件的名称和路径,并且网格视图的名称为grd_MyGrid:

string[] myFiles = Directory.GetFiles("C:\\MyFolder\\");

var files = from f in myFiles
                        select new{
                                    FileName =Path.GetFileName(f),
                                    FilePath = Path.GetPathRoot(f)
                                  };

grd_MyGrid.DataSource=files;
要使其工作,必须参考System.Linq


希望这对您有所帮助。

首先,我将提供一些代码,但您确实应该在将来的开发任务中阅读XAML和WPF的一些基础知识

如果您可以不使用列表框,我建议您使用
DataGrid
(在.NET4.0中或在中)。在希望在网格或报表中显示数据的情况下,DataGrid更易于使用

要在XAML中创建DataGrid,可以使用以下代码(在.NET4中)

在我的MainWindow.xaml文件中:


这看起来像:


@到目前为止,我所看到的一切都有约束力。我也不知道如何开始:(你能给我们一段代码,你试图将数据绑定到gridview,以及绑定的数据中的对象的结构吗?
<DataGrid HorizontalScrollBarVisibility="Auto" ItemsSource="{Binding Path=ItemsToDisplay}" IsReadOnly="True" AutoGenerateColumns="True" />
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = this;
        ItemsToDisplay = new System.Collections.ObjectModel.ObservableCollection<Item>();

        ItemsToDisplay.Add(new Item("Homer", 45));
        ItemsToDisplay.Add(new Item("Marge", 42));
        ItemsToDisplay.Add(new Item("Bart", 10));
        ItemsToDisplay.Add(new Item("Lisa", 8));
        ItemsToDisplay.Add(new Item("Maggie", 2));
    }

    public System.Collections.ObjectModel.ObservableCollection<Item> ItemsToDisplay { get; private set; }
}

public class Item
{
    public string Name { get; private set; }
    public int Age { get; private set; }

    public Item(string name, int age)
    {
        Name = name;
        Age = age;
    }
}
<Window x:Class="Stackoverflow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid HorizontalScrollBarVisibility="Auto" ItemsSource="{Binding Path=ItemsToDisplay}" AutoGenerateColumns="True" IsReadOnly="True" />
    </Grid>
</Window>