我有一个用户控件,名为GridMasterControl,其中包含了另外一个控件Grid(除其他之外)。
现在我需要继承自Grid以创建EditableGrid(以添加编辑功能到网格)。
然后我需要创建一个EditableGridMasterControl,它将与GridMasterControl完全相同,只不过使用的是EditableGrid而非Grid。
我可以想到两种实现方式,但都有问题:
1. 我可以复制和粘贴GridMasterControl,仅将Grid更改为EditableGrid。这样做不好(代码重复不好)。
2. 我可以让EditableGridMasterControl继承GridMasterControl,然后在GridMasterControl中添加一个虚拟函数CreateGrid。EditableGridMasterControl可以实现该函数以创建EditableGrid控件。这也是非常糟糕的想法,因为我需要更改设计器文件来创建控件。我需要保持设计器文件的清晰干净。
我应该如何最好地实现这个目标?
编辑:为了澄清,我认为问题的关键是Visual Studio不允许修改它所创建的设计器文件(或者至少这样做是非常糟糕的),我希望能够有条件地创建不同的类,具体取决于情况。
现在我需要继承自Grid以创建EditableGrid(以添加编辑功能到网格)。
然后我需要创建一个EditableGridMasterControl,它将与GridMasterControl完全相同,只不过使用的是EditableGrid而非Grid。
我可以想到两种实现方式,但都有问题:
1. 我可以复制和粘贴GridMasterControl,仅将Grid更改为EditableGrid。这样做不好(代码重复不好)。
2. 我可以让EditableGridMasterControl继承GridMasterControl,然后在GridMasterControl中添加一个虚拟函数CreateGrid。EditableGridMasterControl可以实现该函数以创建EditableGrid控件。这也是非常糟糕的想法,因为我需要更改设计器文件来创建控件。我需要保持设计器文件的清晰干净。
我应该如何最好地实现这个目标?
编辑:为了澄清,我认为问题的关键是Visual Studio不允许修改它所创建的设计器文件(或者至少这样做是非常糟糕的),我希望能够有条件地创建不同的类,具体取决于情况。