如何在WPF ListView中显示时间日志的内容

本文关键字:日志 时间 显示 WPF ListView | 更新日期: 2023-09-27 18:00:57

我一直在寻找答案,但真的没有找到。我知道其中的逻辑,但我不知道如何实现它。

这是我的时间日志:

No    Mchn  EnNo        Name        Mode    IOMd    DateTime    
00001   1   00001234                1   0   2004/01/01  01:01
00002   1   00001234                1   0   2015/05/12  04:01
00003   1   00001234                2   0   2015/05/12  04:01
00004   1   00001234                1   0   2004/01/01  01:01
00005   1   00001234                1   0   2015/05/13  10:42

我想把它转换成列表视图。真的需要你的帮助。

如何在WPF ListView中显示时间日志的内容

现在我研究代码,并提出了

命名空间文本文件{

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    private void LoadButton(object sender, RoutedEventArgs e)
    {
        foreach (string line in File.ReadAllLines(@"GLG_001.TXT"))
            ListView.Items.Add(new ListViewItem(line));
    }

    }
}

但是出现了错误。上面写着,错误1'系统。Windows。控件。ListViewItem"不包含接受1个参数D:''Documents ''Desktop''textfile''textfile''MainWindow.xaml.cs 33 36 textfile 的构造函数

对于每个条目创建一个类,类似于以下

internal class TimeLogEntryViewModel
{
    public string Id { get; set; }
    public string Mchn { get; set; }
    public string EnNo { get; set; }
    public string Name { get; set; }
    public string Mode { get; set; }
    public string IOMd { get; set; }
    public DateTime DateTime { get; set; }
}

(只需更正属性的名称和类型(。

然后,您需要将这些条目的集合绑定到ListViewItemsSource,并创建一个自定义DataTemplate来显示每个条目。您可以在本教程中获得一些想法。

如果真的需要将其显示为网格,那么可以考虑使用GridView

更新

不要在视图的代码隐藏中创建和添加列表视图项。在WPF中,您应该遵循MVVM模式。你可以从这里开始。

这是我的答案:

namespace textfile
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void LoadButton(object sender, RoutedEventArgs e)
        {
            foreach (string line in File.ReadAllLines(@"GLG_001.TXT"))
            {
                var listViewItem = new ListViewItem();
                listViewItem.Content = line;
                ListView.Items.Add(listViewItem);
            }
        }
    }
}