要有耐心,不确定如何最好地问这个......
-
我在Windows窗体上有一个listView控件,我向它添加了一些项目,这些项目是某个目录中文本文件的名称 .
-
这些文件中的每一个都作为对象"ResultFile"加载,并根据"string Type","int NumberOfLines","bool IsGeneric"等文本分配了许多属性 .
-
用户可以自由选择/取消选择,但我想根据他们已经选择的文本文件类型做出决定 . 作为一个粗略的想法,如果他们已经选择了一个"Type==" x1“我不希望他们能够选择另一个 . 如果他们选择2或更多IsGeneric == true,我想给他们一个警告 . ..
我首先使用此扩展ListViewItem
public class MyListViewItem : ListViewItem
{
public string Type { get; set; }
public int NumberOfLines { get; set; }
public bool IsGeneric { get; set; }
public MyListViewItem(string s)
: base(s)
{ }
}
我对此感到高兴,因为这是我第一次对这个问题感兴趣... ...这允许我添加我自己的"ListViewItems"类型,我可以访问属性来做出决定但是我找到了"tag"属性并认为我可以只需将我的对象绑定到它并直接访问它们的项目 . 我看了MSDN,它说我可以附加"ANY"对象,但我不知道如何使用它 .
除了访问默认对象方法之外,我似乎无法做任何事情 .
myListView.Item[1].Tag.ToString();
似乎是我能做的最多......
我错过了关于ListViewItem.Tag属性的一些内容吗?
1 回答
Tag
属性接受object
类型的任何对象,因此从对象继承的任何类都可以存储在其中 . 所以如果你有一个这样的对象:您可以将对象分配给标记字段,如下所示:
并像这样检索对象:
只有在转换为
MyItem
后才能访问自定义属性 . 否则,您将只获得object
属性和方法,其中一个是.ToString()
.