У меня проблемы с этим методом.combolistbox.Item.Add (FileInfo) несовместим?
Когда я перебираю объекты типа FileInfo в dragdropFiles и каждый раз добавляю их в CLB, я получаю свойство FullName (полный путь к файлу, который мне нужен) возвращается, когда элемент проверен. Однако с помощью hotFolderFiles вместо пути он дает мне только имя файла.
Я не понимаю этого, потому что они добавляют один и тот же тип объекта таким же образом.
(я также пытался получать FileInfo для горячих файлов папок с помощью DirectoryInfo вместо моего словаря с теми же результатами)
Почему такое поведение несовместимо? (и как я могу получить его, чтобы вернуть FILEINFO FULLNAME вместо имени?)
public frmFilesFound(string hotFolderPath, Dictionary<string, FileInfo> dragDropFiles, Dictionary<string, FileInfo> hotFolderFiles, bool ReadOnly)
{
try
{
InitializeComponent();
readOnly = ReadOnly;
btnSelectAll.Visible = true;
clbSelectFilesFound.Visible = true;
clbSelectFilesFound.FormattingEnabled = true;
clbSelectFilesFound.Format += (s, e) => { e.Value = string.Format("{0}", ((FileInfo)e.ListItem).Name); };
foreach (FileInfo fileInfo in dragDropFiles.Values)
{
if (!clbSelectFilesFound.Items.Contains(fileInfo))
{
try
{
// If file not already present, add it to listbox
clbSelectFilesFound.Items.Add(fileInfo);
}
catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); }
}
}
//intended to be hot folder path
if (!String.IsNullOrEmpty(hotFolderPath))
{
DirectoryInfo dirInfo = new DirectoryInfo(hotFolderPath);
foreach (FileInfo fileInfo in dirInfo.GetFiles())
//foreach (FileInfo fileInfo in hotFolderFiles.Values)
{
if (!clbSelectFilesFound.Items.Contains(fileInfo))
{
try
{
clbSelectFilesFound.Items.Add(fileInfo);
}
catch (Exception ex) { MessageBox.Show("Error: " + ex.Message); }
}
}
}
lblDisplayedSelectMessage.Text = "More than one file is waiting. Please select the files you would like to use.";
}
catch (Exception ex)
{ MessageBox.Show(ex.ToString()); }
}
Это просто красота выпадающего списка, вы можете добавлять объекты к нему. В противном случае, т. Е. свойство SelectedItem бесполезно. –
Затем установите фильтр данных для данных в «FullName» или пометьте элемент самой файловой системой, для дальнейшего использования. – SimpleVar
Я добавляю объект, потому что хочу отобразить имя файла в comboListBox, но я хочу использовать FullName из результатов выбора. – negligible