访问一个选择或多个选择

本文关键字:选择 一个 访问 | 更新日期: 2023-09-27 18:07:09

我有一个列表视图,包括列文件名,日期和大小,我可以加载好。但是,当进行选择时,我无法访问所选项目的文件名。

我试着:

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: 'object'不包含'Text'的定义扩展方法"Text"接受类型为"object"的第一个参数可以找到(您是否缺少using指令或程序集?参考?)

访问一个选择或多个选择

您尝试获取Object实例的属性Text。首先,您必须将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类必须包含Text属性