如何在WPF ListView中显示时间日志的内容?
我一直在寻找答案,但我还没找到答案。 我知道逻辑,但我不知道如何实现它。
这是我的时间日志:
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
我想将其转换为列表视图。 真的需要你的帮助。
现在我处理代码,我想出了这个,
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")) ListView.Items.Add(new ListViewItem(line)); } } }
但是发生了错误。 它说,错误1’System.Windows.Controls.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; } }
(只需更正属性的名称和类型)。
然后,您需要将此类条目的集合绑定到ListView
的ItemsSource
,并创建自定义DataTemplate
以显示每个条目。 您可以在本教程中获得一些想法。
如果确实需要将其显示为网格,请考虑使用GridView
。
UPDATE
不要在视图后面的代码中创建和添加列表视图项。 在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); } } } }