ListView中的自定义ListViewItem

在ListViewItem WPF中显示项目的可能方法

更新: 在此处输入图像描述

这是我需要添加到ListView的控件,在这里我只需要显示计算机名称,仍然该项应该保存计算机地址

在此处输入图像描述

稍后,我将需要ListView与表示文件和文件夹的项目,它们将具有:名称,路径,大小,图标,IsFile属性。

所以这就是我现在正在处理的事情,我陷入了listView,当我切换到WPF时我没想到会发生这种情况

这是另一个例子:

                

代码背后:

 public partial class Window1 : Window { public Window1() { InitializeComponent(); DataContext = Enumerable.Range(1,10) .Select(x => new ComputerInfo() { Name = "Computer" + x.ToString(), Ip = "192.168.1." + x.ToString() }); } public ComputerInfo SelectedComputer { get; set; } private void Button_Click(object sender, RoutedEventArgs e) { MessageBox.Show(SelectedComputer.Ip); } } 

数据项:

 public class ComputerInfo { public string Name { get; set; } public string Ip { get; set; } } 

结果:

在此处输入图像描述

老兄,我在5分钟内在几行XAML中做了一个简单的“文件资源管理器”示例。

无需创建自己的ListViewItem或类似的东西。 WPF不是winforms。 你需要明白这一点。

我已经向你解释过了。 用户界面不是数据 。

看:

                                 

代码背后:

 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var path = @"C:\"; var dirs = Directory.GetDirectories(path) .Select(x => new DirectoryInfo(x)) .Select(x => new FileViewModel() { Name = x.Name, Path = x.FullName, IsFile = false, }); var files = Directory.GetFiles(path) .Select(x => new FileInfo(x)) .Select(x => new FileViewModel() { Name = x.Name, Path = x.FullName, Size = x.Length, IsFile = true, }); DataContext = dirs.Concat(files).ToList(); } } 

数据项:

 public class FileViewModel: INotifyPropertyChanged { private bool _isSelected; public bool IsSelected { get { return _isSelected; } set { _isSelected = value; OnPropertyChanged("IsSelected"); } } public string Name { get; set; } public long Size { get; set; } public string Path { get; set; } public bool IsFile { get; set; } public ImageSource Image { get; set; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } } 

结果:

在此处输入图像描述

你有看到? 没有必要使任何事情过于复杂。 WPF拥有您做任何事情所需的一切。