2015-08-10 6 views
1

У меня есть список, состоящий из столбцов filename, даты и размера, которые я могу загрузить нормально. Но когда выбор сделан, я не могу получить доступ к имени файла выбранного элемента.Доступ к выбору или множественному выбору

Я пробовал:

if (filelist.SelectedItems.Count > 0) 
{ 
    String text=""; 
    int x; 
    for (x = 0; x < filelist.SelectedItems.Count; x++) 
     text += filelist.SelectedItems[x].Text; 
    MessageBox.Show(text); 
} 

Но filelist.SelectedItems[x].Text; выдает ошибку.

ошибка CS1061: «объект» не содержит определение для «Текста» и без расширения методы «Текста», принимающего первого аргумент типа «объекта» может быть найдено (вы пропали без вести с помощью директивы или сборка ссылка?)

+1

Что тип ваших вещей? – VMaleev

+0

Ваш выбранный элемент - это ListViewItem, который не имеет свойства Text. –

+0

В событии SelectionChanged просто выберите SelectedIndex, а затем используйте его, чтобы найти элемент, который вы ищете. например, filelist [index] .FileName –

ответ

0

Вы пытаетесь получить свойство Текст экземпляра объекта. Во-первых, вы должны отдать свои SelectedItems на тип, который вы ожидаете. Например, если ваш ItemsSource является:

var sourcelist = new List<YourBoundItemType>(); 
// add items to sourcelist 
filelist.ItemsSource = sourcelist ; 

затем:

var selectedItems = filelist.SelectedItems.OfType<YourBoundItemType>().ToList(); 
if (selectedItems.Count > 0) 
{ 
    String text="";  
    int x; 
    for (x = 0; x < selectedItems.Count; x++) 
     text += selectedItems[x].Text; 
    MessageBox.Show(text); 
} 

Обратите внимание, что ваш класс YourBoundItemType должен содержать текст свойство

+0

Я получил его для работы ... Я поместил свой тип для YourBoundItemType, после чего я получил доступ к свойству Name вместо Text и получил имена файлов. Спасибо. – quincy451

Смежные вопросы