2012-06-09 54 views
-1

我在我的应用程序中有一堆DataGrid。我需要为它们覆盖一些受保护的虚拟方法。有没有比使用从DataGrid类派生的不太熟悉的名称更好的东西?我希望像附加属性这样的解决方案能够使用自定义属性指定过载行为。忽略继承保护虚拟

+0

我不知道我明白你在问什么,请问你可以改述一下这个问题吗? –

+0

这种情况下继承有什么问题?你不能打电话给你的问题派生类DataGrid,但必须选择另一个名字?如果是的话,想想有多奇怪,它会是相同的命名类泛滥所有做事不同。 – Alan

+0

我想要做的是修复WPFToolkit DataGrid奇怪的b ug http://stackoverflow.com/questions/4017786/wpf-recursive-call-to-automation-peer-api-is-not-valid I.e.重写OnCreateAutomationPeer()。但我不想在应用程序代码中进行更改。我认为这并不意味着DataGrid会有所不同。我只是想摆脱怪异的例外。 – vkrzv

回答

0

您必须重写。重写您自己的MyOwnDataGrid中的方法(或更短的名称)。然后使用那个类,无论你使用datagrid。如果你有几百个网格,你必须有一个奇怪的应用程序设计。如果您不想更改创建new DataGrid()的每个位置,我相信您可以更改使用指令。

using DatGrid = My.NameSpace.MyOwnDataGrid; 

你还是要做到这一点,使用DataGrid的每个文件,它使代码有点混乱读,所以我觉得这是更好地只是做一个全球查找/替换的“新的DataGrid(”至“new MyOwnDataGrid(”and you done。

+0

谢谢,但我所有的DataGrid在XAML中定义,而不是新的。 – vkrzv

+0

好的。在XAML中替换也应该可以正常工作。 –

0

在C#中,如果不从该方法继承,就无法重写方法。 MSDN-Override。 重写方法的唯一方法是从该基类继承。是否有一个原因,你不想从基类继承?