我有一个ListView
类,它使用ItemSelectionChanged
事件来维护自己的所选项目列表。
这很有效,只是Clear()
似乎没有触发ItemSelectionChanged
事件
这意味着在调用Clear()
后,列表仍然包含在Clear()
被调用之前突出显示的所有项目。
我想覆盖Clear()
方法,以便我可以自己清除列表,但我可以看到它没有标记为虚拟。还有其他方法可以使用现有的Clear()
方法吗?
计划B是我只是编写自己的方法并在清除之后立即调用它,但这不是很好。
listView1.Clear();
listView1.ClearMyList();
答案 0 :(得分:3)
实际上我不知道c#( public new void )这个功能的名称,但你可以通过创建自己的“customListView”来实现这一点。
var listView = new CustomListView();
listView.Clear();
public class CustomListView : ListView
{
public new void Clear()
{
Console.WriteLine("I can clear myself...");
}
}
答案 1 :(得分:0)
您无法覆盖非虚拟方法。因此,编写“新”自己的方法是最好的方法。