当指定的项目在集合中时触发DataTrigger

时间:2013-12-11 20:35:05

标签: wpf datatrigger

首先,我将描述我正在尝试做什么,以防我以错误的方式解决这个问题:

我有一个来自我的数据层的对象列表。我想通过“验证”类传递这些(在引号中,因为它不是真正进行验证,它具有确定项目是否需要用户操作的业务规则,这会影响显示)。在这个验证逻辑之外,我得到了一个违反业务规则的对象字段列表。然后,我需要在WPF GridView中以不同方式显示这些字段。

最初,业务规则被硬编码到对象中,对象的字段采用Field1Field1Valid行的模式,Valid变体执行访问时检查,这适用于最初的有限情况。然后视图有一个DataTriger,它在Field1Valid字段上作用以应用显示样式。

现在,随着需求的变化,规则中的值可能会有所不同,例如:对于一个设置,它可能是“如果值> 100,则无效”,但另一个可能具有“如果值大于此值则无效” > 90“。因此,为了适应这一点而不使我的数据对象太脏,这些规则被拉出到一个有点充当访问者的不同类中。然后我计划返回一个将数据对象映射到无效字段列表的字典,表示为字符串,或者在包含字段列表的数据对象中有一个列表,也作为字符串。

TL; DR:

所以,基于此,我试图找出如何在错误集合中看到值“Field1”时触发DataTrigger,如果它在对象本身上,或者在它

如果总体上有更好的方法,我也会这样做。

1 个答案:

答案 0 :(得分:0)

也许,在DataTrigger中使用绑定转换器将是解决此问题的最佳方法。 您可以传递收集并在转换器中进行所有检查;根据转换器返回的值应用样式(true表示有效,false表示无效)。 DataTrigger是安静的flexbile,也许对于更复杂的场景,你可以使用MuultiBinding和DataTrigger。