Re: Subclass ListViewItem
Try this:
Code:
public override string ToString()
{
return _info;
}
Touraj Ebrahimi [toraj_e] [at] [yahoo] [dot] [com]
Re: Subclass ListViewItem
Why not just add an ordinary ListViewItem and set the text on it ?
You can set the Tag property to your file info if you need to go from selected item to FileInfo e.g.
Code:
void AddFileInfo(FileInfo fileInfo)
{
ListViewItem newItem = _listView.Items.Add(fileInfo.Name);
newItem.Tag = fileInfo;
}
FileInfo GetFileInfo(ListViewItem item)
{
return item.Tag as FileInfo;
}
Darwen.
Re: Subclass ListViewItem
It's too bad the WinForms ListView doesn't have a DataSource member to support data binding. Here's an example of how slick this is for a listbox.
Code:
public partial class Form1 : Form
{
public Form1( )
{
InitializeComponent( );
DirectoryInfo directoryInfo = new DirectoryInfo( "C:\\" );
foreach( FileInfo fileInfo in directoryInfo.GetFiles( ) )
{
_fileInfoList.Add( fileInfo );
}
this.listBox1.DataSource = _fileInfoList;
this.listBox1.DisplayMember = "Name";
}
private void listBox1_MouseDoubleClick( object sender, MouseEventArgs e )
{
FileInfo fileInfo = listBox1.SelectedItem as FileInfo;
if( null == fileInfo ) return;
MessageBox.Show( String.Format( "Name:\t\t'{0}'\nFullName:\t\t'{1}'\nFileSize:\t\t{2}"
, fileInfo.Name
, fileInfo.FullName
, fileInfo.Length ) );
}
private BindingList<FileInfo> _fileInfoList = new BindingList<FileInfo>( );
}