在WPF 4中,绑定组上的绑定表达式列表(为ValidationRule
的Validate方法传递)为空。
AutoGenerateColumns
是真还是假是一样的,是否已将DataGridBoundColumns
显式添加到数据网格中。
在使用Toolkit中的DataGrid
的WPF 3.5 SP1中,绑定表达式列表中填充了例外绑定表达式(数据网格中每列1个)
我认为这是一个错误并已将其发布在Microsoft Connect网站上: https://connect.microsoft.com/WPF/feedback/details/642815/bindingexpressions-on-bindinggroup-passed-to-validationrule-in-datagrid-rowvalidationrules-is-empty
但有没有人有解决方法,所以我可以从ValidationRule
中获得正确的绑定表达式?
答案 0 :(得分:1)
为了支持未提交双向绑定目标的“建议值”,直到验证成功,重新设计了WPF 4.0 DataGrid
以利用新的BindingGroup.SharesProposedValues
WPF 4.0的功能。由于此更改,不再需要在绑定显示模板组中使用双向绑定。
您可以使用BindingGroup.TryGetValue
检索其他列的建议值,而不是使用适用于WPF Toolkit中DataGrid
的旧方法。
换句话说,新的DataGrid
实际上修复了旧DataGrid
的一个不良特性,因此工作方式略有不同(即缺少的绑定是设计的),但你仍然可以做什么你需要做的。
微软自己的解释是在这个Microsoft Connect链接中:
这是一个以另一种方式描述BindingGroup.SharesProposedValues
的博客: