jny*_*len 13 c# inheritance properties
我目前需要一个自定义ListViewItem类 - 让我们称之为MyListViewItem.它需要有一些与每个项目关联的附加数据,并在更改Checked属性时执行一些操作.我尝试了几件事,但目前相关的代码如下所示:
class MyListViewItem : ListViewItem {
new public bool Checked {
get {
return base.Checked;
}
set {
base.Checked = value;
// do some other things here based on value
}
}
public MyListViewItem(Object otherData) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,当我点击ListView中的项目复选框时,我的setter永远不会被调用.有谁知道我做错了什么?我知道我可以使用父ListView的ItemChecked事件,但这似乎是一个不那么干净的解决方案.(另外我实际上并没有将Object传递给构造函数,但这部分并不重要).
Qui*_*ome 18
它不起作用,因为"new"关键字不会仅仅"隐藏"它.
这意味着如果您通过MyListViewItem的类型定义调用对象实例上的Checked,您将运行您的代码.但是,ListView通过ListViewItem的类型定义引用此对象,因此不会调用您的"新"方法.
"新" 不是覆盖.更好的解决方案是可能在自定义列表视图中处理代码.它真的不那么难看.
| 归档时间: |
|
| 查看次数: |
39350 次 |
| 最近记录: |