要有耐心,不确定如何最好地问这个......
我首先使用此
扩展ListViewItempublic 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”,我可以访问做出决定的属性,但我找到了“标签”属性,并认为我可以将我的对象绑定到它并直接访问它们的项目。我看了MSDN,它说我可以附上“任何”物品,但我不知道如何使用它。
除了访问默认对象方法之外,我似乎无能为力。
myListView.Item[1].Tag.ToString();
似乎是我能做的最多......
我是否遗漏了有关ListViewItem.Tag属性的内容?
答案 0 :(得分:2)
Tag
属性接受object
类型的任何对象,因此从对象继承的任何类都可以存储在其中。所以如果你有这样一个对象:
public class MyItem
{
public string Type { get; set; }
public int NumberOfLines { get; set; }
public bool IsGeneric { get; set; }
}
您可以将对象分配到标记字段,如下所示:
var myobj = new MyItem();
myobj.Type = "Type 1";
myListView.Items[1].Tag = myobj;
并像这样检索对象:
var myobj = (MyItem)myListView.Items[1].Tag;
var type = myobj.Type;
只有在投射到MyItem
后才能访问自定义属性。否则,您只会获得object
属性和方法,其中一个属性为.ToString()
。