有些事情告诉我,我可能会因为问这个而被处以私刑。对于事先冗长的描述,我们深表歉意。
我正在研究 Silverlight 4 项目中的一个角落案例。本质上,我正在构建的是一个自定义表单构建器。
一个表单可能有几个字段,这些字段可能是不同类型的(文本、整数、电子邮件等)。现在,所有这些类型都扩展了Field
类,但在文本字段的情况下可能具有其他属性,例如长度。
我有能力从FieldViewModels
我的FormFieldsManagementViewModel
. 所以到目前为止,这都是非常标准的东西。
现在,UserControl
... DataTemplate
So , to clarify, the UserControl
has a SingleLineTextTemplate
property which will be shown when a SingleLineTextFieldViewModel
is selected but when an EmailFieldViewModel
is selected, the EmailFieldTemplate
is shown. SingleLineTextFieldViewModel
和继承EmailFieldViewModel
自FieldViewModel
。
当我在每个模板中声明绑定时,我的问题就出现了。FieldViewModel
设置基类的属性是非常有效的(恕我直言)IsRequired
,但我也有与 .的Length 属性匹配的Position
绑定。所以我依赖于具体类的扩展接口而不仅仅是类。Length
SingleLineTextTemplate
SingleLineTextFieldViewModel
FieldViewModel
我应该指出,在我继续说这有效之前。我不确定它会,现在确实如此,我不确定它应该,..或者我什至应该这样做。
我这样做只是为了绑定,并且没有绑定到动态对象和/或DataTemplateSelector
Silverlight 中没有绑定。
显然,在绑定场景中SingleLineTextFieldViewModel
不能替代它的基类。我的问题是,因为我并没有真正在代码中使用这些对象,而是在标记中,..这仍然被认为是不好的做法吗?
提前非常感谢。