我正在制作自己的ListView
。 ListView
(a UserControl
)目前使用BindingList
ListViewItems
并显示每个项目。
我正在尝试让我自己的ListView
能够绑定我想要的任何模型对象。这就是我从ListViewItem
类继承Object
的原因。但是现在我正在努力制作一个实际上包含ListViewItem
的集合/列表,但是你可以在其中添加任何你想要的Object
。
简而言之:如何制作与List
或Collection
项目集合相似的ListBox
或ListView
?
示例:
MyListView myListView = new MyListView();
// Add an Object of type MyObject
myListView.Items.Add(myObject);
// Get the object back. (It is returned as a ListViewItem).
ListViewItem sameObjectAsItem = myListView.Items[0];
// Now I should be able to convert the ListViewItem back to MyObject via cast.
MyObject sameObjectAgain = sameObjectAsItem as MyObject;
到目前为止我做了什么:
我创建了一个继承自List<Object>
的类。但我无法将MyObject
投射到ListViewItem
。当然我可以做一个自定义的Cast转换器,但我想我必须创建一个新的ListViewItem
对象,因此会丢失引用。
为什么我这样做:
我在Compact Framework .NET 3.5项目上执行此操作。 CompactFramework只提供基本的ListView
,我正在创建一个更高级的。如果我只使用ListViewItems
,它可以完美地运行,但我希望它的行为与普通的.NET ListView一样。
提前致谢,我希望你能帮助我。请询问您是否需要更多信息。