【问题标题】:WPF Listview - Difficulty adding Items in List viewWPF Listview - 难以在列表视图中添加项目
【发布时间】:2016-04-10 15:07:57
【问题描述】:

我在 UserControl 窗口 中有一个带有网格列的列表视图,文件名为 ListViewModel.xml

    <GridView.Columns>
<GridViewColumn Header="Name" Width="120" DisplayMemberBinding="{Binding Name}" />
    <GridViewColumn Header="Size" Width="120" DisplayMemberBinding="{Binding Size}" />
     <GridViewColumn Header="Type" Width="110" DisplayMemberBinding="{Binding Type}" />
      <GridViewColumn Header="Last Modified" Width="170" DisplayMemberBinding="{Binding Modified}" />
      </GridView.Columns>

我正在使用文件 ListViewModel.xml.cs

中的此代码在列表视图中填充目录文件和文件夹
public void populateListView(string Path)
    {
        listView1.Items.Clear();

        counter = 0;
        DirectoryInfo nodeDirInfo = new DirectoryInfo(Path);

        List<UserList> items;

        foreach (DirectoryInfo dir in nodeDirInfo.GetDirectories())
        {
            items = new List<UserList>();
            items.Add(new UserList() { Name = dir.Name, Size = "", Type = dir.Extension.ToString(), Modified = dir.LastAccessTime.ToString() });

      //      listView1.Items.Add(new UserList() { Name = dir.Name, Size = "", Type = dir.Extension.ToString(), Modified = dir.LastAccessTime.ToString() });
            listView1.Items.Add(items);                                              
        }           

        foreach (FileInfo file in nodeDirInfo.GetFiles())
        {
            items = new List<UserList>();
            items.Add(new UserList() { Name = file.Name, Size = file.Length.ToString() + " bytes", Type = file.Extension, Modified = file.LastAccessTime.ToString() });
            listView1.Items.Add(items);                               
        }           
    }

通过TreeViewModel.xml.cs发送目录路径如下

ListViewModel lm = new ListViewModel();                            
lm.populateListView(tagName); // tagName is path of directory

我通过 UserList.cs 为数据出价

public class UserList // model containing Properties for ListView
{
    public string Name { get; set; }

    public string Size { get; set; }

    public string Type { get; set; }

    public string Modified { get; set; }
}

但我在列表视图中看不到任何内容?有什么帮助吗?

【问题讨论】:

    标签: c# xml wpf listview mvvm


    【解决方案1】:

    当您使用 DataColumn Binding 时,您需要为您的项目设置列表视图数据上下文

    listView1.DataContext = items.ToList();
    

    而不是使用listview1.Items.Add(...)

    【讨论】:

    • 仍然无法得到它。尝试过这样的代码: items = new List(); items.Add(new UserList() { Name = dir.Name, Size = "", Type = dir.Extension.ToString(), Modified = dir.LastAccessTime.ToString() }); listView1.DataContext = items.ToList();
    • 你能给出一个简短的实现吗?
    猜你喜欢
    • 2017-11-10
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多