我想实现几个相似的形式,但不能简单地对一个基类进行子类化,因为相似之处对于它来说有点过于复杂。 如果它只是包含逻辑的类,我会编写几个接口(或者甚至可能使用装饰器模式)来通过实现其中一些接口来生成它们。但是在我的情况下,如果我实现其中一个接口,我需要在我的表单上有特定的控件。因此,我想在我的viewmodel中实现一个接口,并且强制使用' force'任何相应的表格,以包含所需的控制。
虽然我显然可以实现一个继承System.Windows.Forms.Form的类的接口,但这对我想做的事情来说似乎并不简单(特别是因为表单本身不应包含任何逻辑)。是否有适当的"当我将表单绑定到实现特定接口的viewmodel时,验证我的表单是否包含预期的控件?
如果问题不够明确,请点击示例:
我有10个包含TabControl的表单,共有4个标签。 3个选项卡对于所有表单都是相同的。第四个选项卡需要包含一些表单的按钮和其余的文本框。我想在我的Viewmodel中实现一个接口IButtonTab或ITextboxTab来提供所需的属性。 当我实现这些接口时,如何确保Forms实际包含预期的控件? (我希望以后能够在需要时实现这两个接口,从而在我的TabControl中显示两个选项卡。)
(我知道在这种情况下,我可以将两个文本框和一个按钮选项卡添加到我的TabControl中,并删除任何不需要的选项卡。但这对于更复杂的情况似乎不可行。)