场景
在自定义的 PopupWindow
中包含了一个允许编辑的 ListView
,但是对于特定的某些数据(在界面呈现为某些行)不允许进行编辑。例如: ListView
呈现了某个业务类( BusinessObjects
) 的所有成员——使用其 Caption
表示。并且使用勾选框来决定某个成员在其业务类所对应的 ListView
中显示与否。其中必填字段是必须显示的,因此不能够对其进行编辑。
如图所示,客户编号和客户名称是必填字段,因此不能编辑。等级和描述是选填的,因此可以编辑。
实现思路
使用条件外观(Conditional Appearance
)的 Enabled
属性,当读取到某成员包含有 RuleRequiredFieldAttribute
时,设置Enabled
= false
,使其不可编辑。
因为使用条件外观需要满足一定的规则(Criteria
),可以使用一个简单的标志来辅助判定,例如类似于A = 1 或者 B != false 这种简单的判定。 因此需要在业务类( BusinessObjects
)上添加一个字段用来使用规则(Criteria
)。
public class Temp
{
public bool IsAllowEidtVisible {
get; set; } // 新增:是否允许编辑可见性
// ……