我有一个表单,由一个包装了一个 ORM 对象的 ViewModel 支持,该对象映射一个包含“领土”字段的数据库记录。
此字段的业务逻辑由“ValidateTerritory”配置标志切换。如果打开该标志,则该字段必须包含 Territories 表中的值之一。在这种情况下,我的视图应该包含一个填充了这些区域的 ComboBox。这个我可以处理,很简单:在从数据库填充的 ViewModel 上包含一个 ValidTerritories 属性,并将 ComboBox 的 ItemsSource 绑定到该属性。当然,将 ComboBox 的 SelectedValue 绑定到 ORM 中的区域字段。
问题是如果“ValidateTerritory”标志被关闭,这个字段就没有验证规则。它是一个纯文本字段,包含任何不受约束的值。在这种情况下,我的视图应该包含一个 TextBox,它的 Text 属性绑定到 ORM 中的字段。
问题是:处理此问题的最简洁方法是什么 - 根据该配置对象的值将表单上的控件从一种类型切换到另一种类型?